Skip to content

Commit

Permalink
♻️ Kan ha UUID som parameter i mutation
Browse files Browse the repository at this point in the history
  • Loading branch information
chsko committed Jun 4, 2024
1 parent cc12744 commit b8f5d7a
Show file tree
Hide file tree
Showing 5 changed files with 120 additions and 93 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -45,7 +46,11 @@ private object UuidCoercing : Coercing<UUID, String> {
dataFetcherResult: Any,
graphQLContext: GraphQLContext,
locale: Locale,
) = dataFetcherResult.toString()
): String =
when (dataFetcherResult) {
is StringValue -> dataFetcherResult.value
else -> dataFetcherResult.toString()
}

override fun parseValue(
input: Any,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -14,15 +16,15 @@ data class InntektOgRefusjonOverstyring(
val fodselsnummer: String,
val skjaringstidspunkt: DateString,
val arbeidsgivere: List<OverstyringArbeidsgiver>,
val vedtaksperiodeId: String,
val vedtaksperiodeId: UUID,
)

data class ArbeidsforholdOverstyringHandling(
val fodselsnummer: String,
val aktorId: String,
val skjaringstidspunkt: DateString,
val overstyrteArbeidsforhold: List<OverstyringArbeidsforhold>,
val vedtaksperiodeId: String,
val vedtaksperiodeId: UUID,
)

data class OverstyringArbeidsforhold(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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}",
Expand All @@ -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},
Expand All @@ -28,48 +28,50 @@ 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},
forklaring: "${it.forklaring}",
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}",
Expand All @@ -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}"
}
)
}
"""
)
}
""",
)
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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())
}
}
}

0 comments on commit b8f5d7a

Please sign in to comment.