Skip to content

Commit

Permalink
ktlinting.
Browse files Browse the repository at this point in the history
  • Loading branch information
geiralund committed Nov 22, 2024
1 parent fcba846 commit 4345db4
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 84 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
buildscript { repositories { mavenCentral() } }
buildscript { repositories { mavenCentral() } }
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,5 @@ internal class JournalpostBehovLøser(
}
}

private fun SafGraphQL.Journalpost.harDokumentitlerLengreEnn(lengde: Int) =
dokumenter.mapNotNull { dokument -> dokument.tittel }.any { tittel -> tittel.length > lengde }
private fun SafGraphQL.Journalpost.harDokumentitlerLengreEnn(lengde: Int) = dokumenter.mapNotNull { dokument -> dokument.tittel }.any { tittel -> tittel.length > lengde }
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ internal class JournalpostApi {
val journalfoerendeEnhet: String = "9999",
)

internal data class Sak(val fagsakId: String?) {
internal data class Sak(
val fagsakId: String?,
) {
val saksType: SaksType
val fagsaksystem: String?

Expand All @@ -40,11 +42,20 @@ internal class JournalpostApi {
}
}

internal data class Avsender(val id: String, val idType: String = "FNR")
internal data class Avsender(
val id: String,
val idType: String = "FNR",
)

internal data class Bruker(val id: String, val idType: String = "FNR")
internal data class Bruker(
val id: String,
val idType: String = "FNR",
)

internal data class Dokument(val dokumentInfoId: String, val tittel: String)
internal data class Dokument(
val dokumentInfoId: String,
val tittel: String,
)

internal enum class SaksType {
GENERELL_SAK,
Expand Down
144 changes: 74 additions & 70 deletions mediator/src/main/kotlin/no/nav/dagpenger/mottak/behov/person/Pdl.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ import no.nav.dagpenger.mottak.behov.JsonMapper.jacksonJsonAdapter
private val logg = KotlinLogging.logger {}
private val sikkerlogg = KotlinLogging.logger("tjenestekall.Pdl")

internal class PdlPersondataOppslag(config: Configuration) {
internal class PdlPersondataOppslag(
config: Configuration,
) {
private val tokenProvider = config.pdlApiTokenProvider
private val pdlClient =
HttpClient {
Expand All @@ -44,23 +46,27 @@ internal class PdlPersondataOppslag(config: Configuration) {
}

suspend fun hentPerson(id: String): Pdl.Person? =
pdlClient.request {
header(HttpHeaders.Authorization, "Bearer ${tokenProvider.invoke()}")
method = HttpMethod.Post
setBody(PersonQuery(id).toJson().also { sikkerlogg.info { "Forsøker å hente person med id $id fra PDL" } })
}.bodyAsText().let { body ->
getWarnings(body).takeIf { it.isNotEmpty() }?.map { warnings ->
logg.warn { "Warnings ved henting av person fra PDL: $warnings" }
}
if (hasError(body)) {
throw PdlPersondataOppslagException(body)
} else {
Pdl.Person.fromGraphQlJson(body)
pdlClient
.request {
header(HttpHeaders.Authorization, "Bearer ${tokenProvider.invoke()}")
method = HttpMethod.Post
setBody(PersonQuery(id).toJson().also { sikkerlogg.info { "Forsøker å hente person med id $id fra PDL" } })
}.bodyAsText()
.let { body ->
getWarnings(body).takeIf { it.isNotEmpty() }?.map { warnings ->
logg.warn { "Warnings ved henting av person fra PDL: $warnings" }
}
if (hasError(body)) {
throw PdlPersondataOppslagException(body)
} else {
Pdl.Person.fromGraphQlJson(body)
}
}
}
}

internal class PdlPersondataOppslagException(s: String) : RuntimeException(s)
internal class PdlPersondataOppslagException(
s: String,
) : RuntimeException(s)

internal fun hasError(json: String): Boolean {
val j = jacksonObjectMapper().readTree(json)
Expand Down Expand Up @@ -97,34 +103,36 @@ private fun harGraphqlErrors(json: JsonNode) = json["errors"] != null && !json["

private fun ukjentPersonIdent(node: JsonNode) = node["errors"]?.any { it["message"].asText() == "Fant ikke person" } ?: false

internal data class PersonQuery(val id: String) : GraphqlQuery(
//language=Graphql
query =
"""
query(${'$'}ident: ID!) {
hentPerson(ident: ${'$'}ident) {
navn {
fornavn,
mellomnavn,
etternavn
},
adressebeskyttelse{
gradering
internal data class PersonQuery(
val id: String,
) : GraphqlQuery(
//language=Graphql
query =
"""
query(${'$'}ident: ID!) {
hentPerson(ident: ${'$'}ident) {
navn {
fornavn,
mellomnavn,
etternavn
},
adressebeskyttelse{
gradering
}
}
}
hentGeografiskTilknytning(ident: ${'$'}ident){
gtLand
}
hentIdenter(ident: ${'$'}ident, grupper: [AKTORID,FOLKEREGISTERIDENT]) {
identer {
ident,
gruppe
hentGeografiskTilknytning(ident: ${'$'}ident){
gtLand
}
}
}
""".trimIndent(),
variables = mapOf("ident" to id),
)
hentIdenter(ident: ${'$'}ident, grupper: [AKTORID,FOLKEREGISTERIDENT]) {
identer {
ident,
gruppe
}
}
}
""".trimIndent(),
variables = mapOf("ident" to id),
)

internal class Pdl {
@JsonDeserialize(using = PersonDeserializer::class)
Expand All @@ -147,12 +155,10 @@ internal class Pdl {

internal fun JsonNode.norskTilknyting(): Boolean = findValue("gtLand")?.isNull ?: false

internal fun JsonNode.diskresjonsKode(): String? {
return findValue("adressebeskyttelse").firstOrNull()?.path("gradering")?.asText(null)
}
internal fun JsonNode.diskresjonsKode(): String? = findValue("adressebeskyttelse").firstOrNull()?.path("gradering")?.asText(null)

internal fun JsonNode.personNavn(): String {
return findValue("navn").first().let { node ->
internal fun JsonNode.personNavn(): String =
findValue("navn").first().let { node ->
val fornavn = node.path("fornavn").asText()
val mellomnavn = node.path("mellomnavn").asText("")
val etternavn = node.path("etternavn").asText()
Expand All @@ -162,11 +168,8 @@ internal class Pdl {
else -> "$fornavn $mellomnavn $etternavn"
}
}
}

private fun JsonNode.ident(type: String): String {
return findValue("identer").first { it.path("gruppe").asText() == type }.get("ident").asText()
}
private fun JsonNode.ident(type: String): String = findValue("identer").first { it.path("gruppe").asText() == type }.get("ident").asText()

private fun JsonNode.harIdent(type: String): Boolean = findValue("identer").map { it["gruppe"].asText() }.contains(type)

Expand All @@ -176,27 +179,28 @@ internal class Pdl {
): Person? {
val node: JsonNode = p.readValueAsTree()

return kotlin.runCatching {
Person(
navn = node.personNavn(),
aktørId = node.aktørId(),
fødselsnummer = node.fødselsnummer(),
norskTilknytning = node.norskTilknyting(),
diskresjonskode = node.diskresjonsKode(),
return kotlin
.runCatching {
Person(
navn = node.personNavn(),
aktørId = node.aktørId(),
fødselsnummer = node.fødselsnummer(),
norskTilknytning = node.norskTilknyting(),
diskresjonskode = node.diskresjonsKode(),
)
}.fold(
onSuccess = {
it
},
onFailure = {
if (ukjentPersonIdent(node) || !node.harIdent("FOLKEREGISTERIDENT")) {
return null
} else {
sikkerlogg.error(it) { "Feil ved deserialisering av PDL response: $node" }
throw it
}
},
)
}.fold(
onSuccess = {
it
},
onFailure = {
if (ukjentPersonIdent(node) || !node.harIdent("FOLKEREGISTERIDENT")) {
return null
} else {
sikkerlogg.error(it) { "Feil ved deserialisering av PDL response: $node" }
throw it
}
},
)
}
}
}
17 changes: 10 additions & 7 deletions modell/src/main/kotlin/no/nav/dagpenger/mottak/Innsending.kt
Original file line number Diff line number Diff line change
Expand Up @@ -203,14 +203,13 @@ class Innsending private constructor(
hendelse: Hendelse,
) {}

override fun toSpesifikkKontekst(): SpesifikkKontekst {
return SpesifikkKontekst(
override fun toSpesifikkKontekst(): SpesifikkKontekst =
SpesifikkKontekst(
"Tilstand",
mapOf(
"tilstand" to type.name,
),
)
}
}

internal object Mottatt : Tilstand {
Expand Down Expand Up @@ -694,8 +693,10 @@ class Innsending private constructor(
datoRegistrert = jp.datoRegistrert(),
søknadsData = rutingOppslag?.data(),
behandlendeEnhet =
jp.kategorisertJournalpost()
.oppgaveBenk(person, rutingOppslag).id,
jp
.kategorisertJournalpost()
.oppgaveBenk(person, rutingOppslag)
.id,
tittel = jp.hovedDokument().tittel,
).also { ferdig ->
observers.forEach { it.innsendingFerdigstilt(ferdig) }
Expand All @@ -714,8 +715,10 @@ class Innsending private constructor(
datoRegistrert = jp.datoRegistrert(),
søknadsData = rutingOppslag?.data(),
behandlendeEnhet =
jp.kategorisertJournalpost()
.oppgaveBenk(person, rutingOppslag).id,
jp
.kategorisertJournalpost()
.oppgaveBenk(person, rutingOppslag)
.id,
tittel = jp.hovedDokument().tittel,
).also { mottatt ->
observers.forEach { it.innsendingMottatt(mottatt) }
Expand Down

0 comments on commit 4345db4

Please sign in to comment.