From 32efc94c18c0f5604f007ba920b06047cf13220f Mon Sep 17 00:00:00 2001 From: Jonas Enge Date: Fri, 9 Jun 2023 10:06:11 +0200 Subject: [PATCH] Legger til callId og consumerId --- paw-pdl-client/build.gradle.kts | 2 +- paw-pdl-client/gradle.properties | 2 +- .../src/main/kotlin/no/nav/paw/pdl/HentAktorId.kt | 12 ++++++------ .../src/main/kotlin/no/nav/paw/pdl/PdlClient.kt | 5 ++++- .../src/test/kotlin/no/nav/paw/MockPdlClient.kt | 2 +- .../src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt | 8 +++++--- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/paw-pdl-client/build.gradle.kts b/paw-pdl-client/build.gradle.kts index c73dc0e..443f481 100644 --- a/paw-pdl-client/build.gradle.kts +++ b/paw-pdl-client/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = "no.nav.paw" -version = "0.1.4" +version = "0.2.0" plugins { kotlin("jvm") diff --git a/paw-pdl-client/gradle.properties b/paw-pdl-client/gradle.properties index d6bde9f..851e1f5 100644 --- a/paw-pdl-client/gradle.properties +++ b/paw-pdl-client/gradle.properties @@ -8,5 +8,5 @@ graphQLKotlinVersion=6.4.0 # Dependency versions coroutinesVersion=1.6.4 kotlinSerializationVersion=1.4.0 -ktorVersion=2.1.1 +ktorVersion=2.3.1 mockkVersion=1.12.7 diff --git a/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/HentAktorId.kt b/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/HentAktorId.kt index b14837f..e216a85 100644 --- a/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/HentAktorId.kt +++ b/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/HentAktorId.kt @@ -4,23 +4,23 @@ import no.nav.paw.pdl.graphql.generated.HentIdenter import no.nav.paw.pdl.graphql.generated.enums.IdentGruppe import no.nav.paw.pdl.graphql.generated.hentidenter.IdentInformasjon -suspend fun PdlClient.hentAktorId(ident: String): String? = hentIdenter(ident) +suspend fun PdlClient.hentAktorId(ident: String, callId: String): String? = hentIdenter(ident, callId) ?.firstOrNull { it.gruppe == IdentGruppe.AKTORID } ?.ident -suspend fun PdlClient.hentIdenter(ident: String): List? { +suspend fun PdlClient.hentIdenter(ident: String, callId: String): List? { val query = HentIdenter(HentIdenter.Variables(ident)) - logger.info("Henter 'aktorId' fra PDL") + logger.info("Henter 'hentIdenter' fra PDL") - val respons = execute(query) + val respons = execute(query, callId) respons.errors?.let { - logger.error("Henter 'aktorId' fra PDL feilet med: ${respons.errors}") + logger.error("Henter 'hentIdenter' fra PDL feilet med: ${respons.errors}") throw PdlException(it) } - logger.info("Hentet 'aktorId' fra PDL") + logger.info("Hentet 'hentIdenter' fra PDL") return respons .data diff --git a/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/PdlClient.kt b/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/PdlClient.kt index 3d4c5e0..178a9d7 100644 --- a/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/PdlClient.kt +++ b/paw-pdl-client/src/main/kotlin/no/nav/paw/pdl/PdlClient.kt @@ -15,6 +15,7 @@ class PdlClient( url: String, // Tema: https://confluence.adeo.no/pages/viewpage.action?pageId=309311397 private val tema: String, + private val navConsumerId: String, httpClient: HttpClient, private val getAccessToken: () -> String ) { @@ -25,10 +26,12 @@ class PdlClient( httpClient = httpClient ) - internal suspend fun execute(query: GraphQLClientRequest): GraphQLClientResponse = + internal suspend fun execute(query: GraphQLClientRequest, callId: String): GraphQLClientResponse = graphQLClient.execute(query) { bearerAuth(getAccessToken()) header("Tema", tema) + header("Nav-Call-Id", callId) + header("Nav-Consumer-Id", navConsumerId) } } diff --git a/paw-pdl-client/src/test/kotlin/no/nav/paw/MockPdlClient.kt b/paw-pdl-client/src/test/kotlin/no/nav/paw/MockPdlClient.kt index f275fab..e310922 100644 --- a/paw-pdl-client/src/test/kotlin/no/nav/paw/MockPdlClient.kt +++ b/paw-pdl-client/src/test/kotlin/no/nav/paw/MockPdlClient.kt @@ -17,5 +17,5 @@ fun mockPdlClient(content: String): PdlClient { headers = headersOf(HttpHeaders.ContentType, ContentType.Application.Json.toString()) ) } - return PdlClient("https://url", "tema", HttpClient(mockEngine)) { "fake token" } + return PdlClient("https://url", "tema", "consumerId", HttpClient(mockEngine)) { "fake token" } } diff --git a/paw-pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt b/paw-pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt index 21a5949..8209815 100644 --- a/paw-pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt +++ b/paw-pdl-client/src/test/kotlin/no/nav/paw/pdl/PdlClientTest.kt @@ -2,17 +2,19 @@ package no.nav.paw.pdl import kotlinx.coroutines.runBlocking import no.nav.paw.mockPdlClient +import java.util.UUID import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertFailsWith class PdlClientTest { + val callId = UUID.randomUUID().toString() @Test fun `Forventer gyldig respons fra hentAktorId`() { val respons = readResource("hentIdenter-response.json") val pdlClient = mockPdlClient(respons) - val resultat = runBlocking { pdlClient.hentAktorId("2649500819544") } + val resultat = runBlocking { pdlClient.hentAktorId("2649500819544", callId) } val forventet = "2649500819544" assertEquals(forventet, resultat) } @@ -24,7 +26,7 @@ class PdlClientTest { assertFailsWith( block = { runBlocking { - pdlClient.hentIdenter("2649500819544") + pdlClient.hentIdenter("2649500819544", callId) } } ) @@ -35,7 +37,7 @@ class PdlClientTest { val respons = readResource("hentIdenter-response.json") val pdlClient = mockPdlClient(respons) - val resultat = runBlocking { pdlClient.hentIdenter("2649500819544") } + val resultat = runBlocking { pdlClient.hentIdenter("2649500819544", callId) } val forventet = "09127821914" assertEquals(forventet, resultat!!.first().ident) }