Skip to content

Commit

Permalink
kan søke opp person via uuid
Browse files Browse the repository at this point in the history
Co-authored-by: Erik Maximilian Forsman <erik.maximilian.forsman@nav.no>
  • Loading branch information
davidsteinsland and fraadsbrandth committed Dec 13, 2023
1 parent 3ac1db3 commit e2c5960
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 4 deletions.
5 changes: 4 additions & 1 deletion backend/src/main/kotlin/no/nav/spanner/Personer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,10 @@ class Spleis(
}

override suspend fun person(id: String, idType: IdType, accessToken: String): String {
val url = URLBuilder(baseUrl).apply { path("api", "person-json") }.build()
val url = URLBuilder(baseUrl).apply {
if (idType == IdType.MASKERT_ID) path("api", "person-json", id)
else path("api", "person-json")
}.build()

val oboToken = token(accessToken, spleisClientId)
val log = Log.logger(Personer::class.java)
Expand Down
8 changes: 5 additions & 3 deletions backend/src/main/kotlin/no/nav/spanner/Spanner.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import java.time.LocalDateTime
import java.util.*

enum class IdType(val header: String) {
FNR("fnr"), AKTORID("aktorId")
FNR("fnr"), AKTORID("aktorId"), MASKERT_ID("maskertId")
}

private val logg = Log.logger("Spanner")
Expand Down Expand Up @@ -218,8 +218,10 @@ fun Application.spanner(spleis: Personer, config: AzureADConfig, development: Bo
}

private fun ApplicationCall.personId() =
request.headers[IdType.FNR.header]?.let {
Pair(IdType.FNR, request.header(IdType.FNR.header))
request.headers[IdType.MASKERT_ID.header]?.let {
Pair(IdType.MASKERT_ID, it)
} ?: request.headers[IdType.FNR.header]?.let {
Pair(IdType.FNR, it)
} ?: Pair(IdType.AKTORID, request.header(IdType.AKTORID.header))


Expand Down
3 changes: 3 additions & 0 deletions frontend/src/external/backend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { createContext, useContext } from '../state/contexts'
export type Backend = {
personForFnr: (fnr: string) => Promise<PersonDto>
personForAktørId: (aktørId: string) => Promise<PersonDto>
personForUUID: (maskertId: string) => Promise<PersonDto>
hendelseForRef: (meldingsreferanse: string) => Promise<MeldingDto>
}

Expand All @@ -16,6 +17,8 @@ export const personRequestFactory = (personId: string, backend: Backend) => {
return () => backend.personForFnr(personId)
} else if (personId.length == 13 || personId.length == 2) {
return () => backend.personForAktørId(personId)
} else if (personId.length == 36) {
return () => backend.personForUUID(personId)
} else {
throw Error('Ikke gyldig fnr eller aktør-id')
}
Expand Down
3 changes: 3 additions & 0 deletions frontend/src/external/jsonBackend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ export let hardCodedBackend: Backend = {
personForFnr(ignore: string): Promise<PersonDto> {
return Promise.resolve(jsonPerson)
},
personForUUID(ignore: string): Promise<PersonDto> {
return Promise.reject(lagfinnesIkkeFeil())
},
hendelseForRef: function (_: string): Promise<MeldingDto> {
return Promise.resolve(jsonHendelse)
},
Expand Down
12 changes: 12 additions & 0 deletions frontend/src/external/restBackend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,18 @@ export const restBackend = (development: boolean): Backend => {
.then(feilVedDårligRespons)
.then((response) => response.json())
},
personForUUID(maskertId: string): Promise<PersonDto> {
return fetch(`${baseUrl}/api/person/`, {
method: 'get',
headers: {
Accept: 'application/json',
maskertId: `${maskertId}`,
},
})
.catch(wrapNnettverksFeil)
.then(feilVedDårligRespons)
.then((response) => response.json())
},
personForFnr(fnr: string): Promise<PersonDto> {
return fetch(`${baseUrl}/api/person/`, {
method: 'get',
Expand Down

0 comments on commit e2c5960

Please sign in to comment.