From b8f5d7a3f3b961b97010bdad84cd795c15a522c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20B=C3=BClow=20Skovborg?= Date: Tue, 4 Jun 2024 23:07:15 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Kan=20ha=20UUID=20som=20pa?= =?UTF-8?q?rameter=20i=20mutation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/graphql/SchemaGeneratorHooks.kt | 7 +- .../graphql/mutation/OverstyringMutation.kt | 3 +- .../api/graphql/schema/Overstyring.kt | 8 +- .../api/AbstractOverstyringApiTest.kt | 70 +++++----- .../mutation/OverstyringMutationTest.kt | 125 ++++++++++-------- 5 files changed, 120 insertions(+), 93 deletions(-) diff --git a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/SchemaGeneratorHooks.kt b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/SchemaGeneratorHooks.kt index 87727a6b9..a36a40b8f 100644 --- a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/SchemaGeneratorHooks.kt +++ b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/SchemaGeneratorHooks.kt @@ -3,6 +3,7 @@ package no.nav.helse.spesialist.api.graphql import com.expediagroup.graphql.generator.hooks.SchemaGeneratorHooks import graphql.GraphQLContext import graphql.execution.CoercedVariables +import graphql.language.StringValue import graphql.language.Value import graphql.schema.Coercing import graphql.schema.GraphQLScalarType @@ -45,7 +46,11 @@ private object UuidCoercing : Coercing { dataFetcherResult: Any, graphQLContext: GraphQLContext, locale: Locale, - ) = dataFetcherResult.toString() + ): String = + when (dataFetcherResult) { + is StringValue -> dataFetcherResult.value + else -> dataFetcherResult.toString() + } override fun parseValue( input: Any, diff --git a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutation.kt b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutation.kt index 0fadebb23..dceef3d15 100644 --- a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutation.kt +++ b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutation.kt @@ -20,7 +20,6 @@ import no.nav.helse.spesialist.api.saksbehandler.handlinger.OverstyrTidslinjeHan import org.slf4j.Logger import org.slf4j.LoggerFactory import java.time.LocalDate -import java.util.UUID class OverstyringMutation(private val saksbehandlerhåndterer: Saksbehandlerhåndterer) : Mutation { private companion object { @@ -37,7 +36,7 @@ class OverstyringMutation(private val saksbehandlerhåndterer: Saksbehandlerhån try { val handling = OverstyrTidslinjeHandlingFraApi( - vedtaksperiodeId = UUID.fromString(overstyring.vedtaksperiodeId), + vedtaksperiodeId = overstyring.vedtaksperiodeId, organisasjonsnummer = overstyring.organisasjonsnummer, fødselsnummer = overstyring.fodselsnummer, aktørId = overstyring.aktorId, diff --git a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/schema/Overstyring.kt b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/schema/Overstyring.kt index c0fc54dd0..9d9ca31d1 100644 --- a/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/schema/Overstyring.kt +++ b/spesialist-api/src/main/kotlin/no/nav/helse/spesialist/api/graphql/schema/Overstyring.kt @@ -1,7 +1,9 @@ package no.nav.helse.spesialist.api.graphql.schema +import java.util.UUID + data class TidslinjeOverstyring( - val vedtaksperiodeId: String, + val vedtaksperiodeId: UUID, val organisasjonsnummer: String, val fodselsnummer: String, val aktorId: String, @@ -14,7 +16,7 @@ data class InntektOgRefusjonOverstyring( val fodselsnummer: String, val skjaringstidspunkt: DateString, val arbeidsgivere: List, - val vedtaksperiodeId: String, + val vedtaksperiodeId: UUID, ) data class ArbeidsforholdOverstyringHandling( @@ -22,7 +24,7 @@ data class ArbeidsforholdOverstyringHandling( val aktorId: String, val skjaringstidspunkt: DateString, val overstyrteArbeidsforhold: List, - val vedtaksperiodeId: String, + val vedtaksperiodeId: UUID, ) data class OverstyringArbeidsforhold( diff --git a/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/AbstractOverstyringApiTest.kt b/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/AbstractOverstyringApiTest.kt index 5ed72e875..992ebfea0 100644 --- a/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/AbstractOverstyringApiTest.kt +++ b/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/AbstractOverstyringApiTest.kt @@ -6,9 +6,9 @@ import no.nav.helse.spesialist.api.graphql.schema.InntektOgRefusjonOverstyring import no.nav.helse.spesialist.api.graphql.schema.TidslinjeOverstyring internal abstract class AbstractOverstyringApiTest() : AbstractGraphQLApiTest() { - - fun overstyrTidslinje(overstyring: TidslinjeOverstyring): JsonNode = runQuery( - """ + fun overstyrTidslinje(overstyring: TidslinjeOverstyring): JsonNode = + runQuery( + """ mutation OverstyrTidsline { overstyrDager(overstyring:{ aktorId: "${overstyring.aktorId}", @@ -17,8 +17,8 @@ internal abstract class AbstractOverstyringApiTest() : AbstractGraphQLApiTest() organisasjonsnummer: "${overstyring.organisasjonsnummer}", vedtaksperiodeId: "${overstyring.vedtaksperiodeId}", dager: ${ - overstyring.dager.map { - """ + overstyring.dager.map { + """ { dato: "${it.dato}", fraGrad: ${it.fraGrad}, @@ -28,23 +28,24 @@ internal abstract class AbstractOverstyringApiTest() : AbstractGraphQLApiTest() lovhjemmel: {bokstav: "A", ledd: "Albue", lovverk: "Norske lover", lovverksversjon: "1803", paragraf: "8-30"} } """ - } - } + } + } }) } - """ - ) + """, + ) - fun overstyrArbeidsforhold(overstyring: ArbeidsforholdOverstyringHandling): JsonNode = runQuery( - """ + fun overstyrArbeidsforhold(overstyring: ArbeidsforholdOverstyringHandling): JsonNode = + runQuery( + """ mutation OverstyrArbeidsforhold { overstyrArbeidsforhold(overstyring: { aktorId: "${overstyring.aktorId}", skjaringstidspunkt: "${overstyring.skjaringstidspunkt}", fodselsnummer: "${overstyring.fodselsnummer}", overstyrteArbeidsforhold: ${ - overstyring.overstyrteArbeidsforhold.map { - """ + overstyring.overstyrteArbeidsforhold.map { + """ { begrunnelse: "${it.begrunnelse}", deaktivert: ${it.deaktivert}, @@ -52,24 +53,25 @@ internal abstract class AbstractOverstyringApiTest() : AbstractGraphQLApiTest() orgnummer: "${it.orgnummer}", } """ - } - }, + } + }, vedtaksperiodeId: "${overstyring.vedtaksperiodeId}" }) } - """ - ) + """, + ) - fun overstyrInntektOgRefusjon(overstyring: InntektOgRefusjonOverstyring): JsonNode = runQuery( - """ + fun overstyrInntektOgRefusjon(overstyring: InntektOgRefusjonOverstyring): JsonNode = + runQuery( + """ mutation OverstyrInntektOgRefusjon { overstyrInntektOgRefusjon(overstyring: { aktorId: "${overstyring.aktorId}", skjaringstidspunkt: "${overstyring.skjaringstidspunkt}", fodselsnummer: "${overstyring.fodselsnummer}", arbeidsgivere: ${ - overstyring.arbeidsgivere.map { - """ + overstyring.arbeidsgivere.map { + """ { forklaring: "${it.forklaring}", begrunnelse: "${it.begrunnelse}", @@ -78,35 +80,35 @@ internal abstract class AbstractOverstyringApiTest() : AbstractGraphQLApiTest() manedligInntekt: ${it.manedligInntekt}, lovhjemmel: {bokstav: "A", ledd: "Albue", lovverk: "Norske lover", lovverksversjon: "1803", paragraf: "8-30"}, refusjonsopplysninger: ${ - it.refusjonsopplysninger?.map { opplysning -> - """ + it.refusjonsopplysninger?.map { opplysning -> + """ { belop: ${opplysning.belop}, fom: "${opplysning.fom}", tom: ${opplysning.tom?.let { """"$it"""" }} } """ - } - }, + } + }, fraRefusjonsopplysninger: ${ - it.fraRefusjonsopplysninger?.map { opplysning -> - """ + it.fraRefusjonsopplysninger?.map { opplysning -> + """ { belop: ${opplysning.belop}, fom: "${opplysning.fom}", tom: ${opplysning.tom?.let { """"$it"""" }} } """ - } - } + } + } } """ - } - }, + } + }, vedtaksperiodeId: "${overstyring.vedtaksperiodeId}" } ) } - """ - ) -} \ No newline at end of file + """, + ) +} diff --git a/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutationTest.kt b/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutationTest.kt index 99f64ff1f..40e0eb157 100644 --- a/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutationTest.kt +++ b/spesialist-api/src/test/kotlin/no/nav/helse/spesialist/api/graphql/mutation/OverstyringMutationTest.kt @@ -1,6 +1,5 @@ package no.nav.helse.spesialist.api.graphql.mutation -import java.util.UUID import no.nav.helse.spesialist.api.AbstractOverstyringApiTest import no.nav.helse.spesialist.api.februar import no.nav.helse.spesialist.api.graphql.schema.ArbeidsforholdOverstyringHandling @@ -13,89 +12,109 @@ import no.nav.helse.spesialist.api.graphql.schema.TidslinjeOverstyring import no.nav.helse.spesialist.api.januar import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test +import java.util.UUID internal class OverstyringMutationTest : AbstractOverstyringApiTest() { - @Test fun `overstyr tidslinje`() { - val body = overstyrTidslinje( - TidslinjeOverstyring( - UUID.randomUUID().toString(), ORGANISASJONSNUMMER, FØDSELSNUMMER, AKTØRID, "En begrunnelse", listOf( - OverstyringDag(10.januar.toString(), "Feriedag", "Sykedag", null, 100, null) - ) + val body = + overstyrTidslinje( + TidslinjeOverstyring( + UUID.randomUUID(), + ORGANISASJONSNUMMER, + FØDSELSNUMMER, + AKTØRID, + "En begrunnelse", + listOf( + OverstyringDag(10.januar.toString(), "Feriedag", "Sykedag", null, 100, null), + ), + ), ) - ) Assertions.assertTrue(body["data"]["overstyrDager"].asBoolean()) } @Test fun `overstyr tidslinje til arbeidsdag`() { - val body = overstyrTidslinje( - TidslinjeOverstyring( - UUID.randomUUID().toString(), ORGANISASJONSNUMMER, FØDSELSNUMMER, AKTØRID, "En begrunnelse", listOf( - OverstyringDag(10.januar.toString(), "Arbeidsdag", "Sykedag", null, 100, null) - ) + val body = + overstyrTidslinje( + TidslinjeOverstyring( + UUID.randomUUID(), + ORGANISASJONSNUMMER, + FØDSELSNUMMER, + AKTØRID, + "En begrunnelse", + listOf( + OverstyringDag(10.januar.toString(), "Arbeidsdag", "Sykedag", null, 100, null), + ), + ), ) - ) Assertions.assertTrue(body["data"]["overstyrDager"].asBoolean()) } @Test fun `overstyr tidslinje fra arbeidsdag`() { - val body = overstyrTidslinje( - TidslinjeOverstyring( - UUID.randomUUID().toString(), ORGANISASJONSNUMMER, FØDSELSNUMMER, AKTØRID, "En begrunnelse", listOf( - OverstyringDag(10.januar.toString(), "Sykedag", "Arbeidsdag", null, 100, null) - ) + val body = + overstyrTidslinje( + TidslinjeOverstyring( + UUID.randomUUID(), + ORGANISASJONSNUMMER, + FØDSELSNUMMER, + AKTØRID, + "En begrunnelse", + listOf( + OverstyringDag(10.januar.toString(), "Sykedag", "Arbeidsdag", null, 100, null), + ), + ), ) - ) Assertions.assertTrue(body["data"]["overstyrDager"].asBoolean()) } @Test fun `overstyr arbeidsforhold`() { - val body = overstyrArbeidsforhold( - ArbeidsforholdOverstyringHandling( - FØDSELSNUMMER, - AKTØRID, - 10.januar.toString(), - listOf( - OverstyringArbeidsforhold(ORGANISASJONSNUMMER_GHOST, true, "En begrunnelse", "En forklaring", null) + val body = + overstyrArbeidsforhold( + ArbeidsforholdOverstyringHandling( + FØDSELSNUMMER, + AKTØRID, + 10.januar.toString(), + listOf( + OverstyringArbeidsforhold(ORGANISASJONSNUMMER_GHOST, true, "En begrunnelse", "En forklaring", null), + ), + vedtaksperiodeId = UUID.randomUUID(), ), - vedtaksperiodeId = UUID.randomUUID().toString() ) - ) Assertions.assertTrue(body["data"]["overstyrArbeidsforhold"].asBoolean()) } @Test fun `overstyr inntekt og refusjon`() { - val body = overstyrInntektOgRefusjon( - InntektOgRefusjonOverstyring( - AKTØRID, - FØDSELSNUMMER, - 10.januar.toString(), - listOf( - OverstyringArbeidsgiver( - ORGANISASJONSNUMMER_GHOST, - 24000.0, - 25000.0, - listOf( - OverstyringRefusjonselement(10.januar.toString(), 31.januar.toString(), 24000.0), - OverstyringRefusjonselement(1.februar.toString(), null, 24000.0) - ), - listOf( - OverstyringRefusjonselement(10.januar.toString(), 31.januar.toString(), 25000.0), - OverstyringRefusjonselement(1.februar.toString(), null, 25000.0) + val body = + overstyrInntektOgRefusjon( + InntektOgRefusjonOverstyring( + AKTØRID, + FØDSELSNUMMER, + 10.januar.toString(), + listOf( + OverstyringArbeidsgiver( + ORGANISASJONSNUMMER_GHOST, + 24000.0, + 25000.0, + listOf( + OverstyringRefusjonselement(10.januar.toString(), 31.januar.toString(), 24000.0), + OverstyringRefusjonselement(1.februar.toString(), null, 24000.0), + ), + listOf( + OverstyringRefusjonselement(10.januar.toString(), 31.januar.toString(), 25000.0), + OverstyringRefusjonselement(1.februar.toString(), null, 25000.0), + ), + "En begrunnelse", + "En forklaring", + null, ), - "En begrunnelse", - "En forklaring", - null, - ) + ), + vedtaksperiodeId = UUID.randomUUID(), ), - vedtaksperiodeId = UUID.randomUUID().toString() ) - ) Assertions.assertTrue(body["data"]["overstyrInntektOgRefusjon"].asBoolean()) } -} \ No newline at end of file +}