Skip to content

Commit

Permalink
♻️ Flytt mapping til GraphQL ut av DAO.
Browse files Browse the repository at this point in the history
- Endre fra finnAlleAvslag til finnAlleVedtakBegrunnelser
- Lag egen type som holder på verdier tilsvarende databasen
- Map fra databaseverdier til GraphQL i kaller
- Bruk databasetypen i Dao-testen

Co-authored-by: Martin Remøy Solheim <[email protected]>
  • Loading branch information
navelgen and MartinMekk committed Nov 26, 2024
1 parent 89967f4 commit 9df0fd5
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ class VedtakBegrunnelseDao(queryRunner: QueryRunner) : QueryRunner by queryRunne
}
}

// TODO: Tabell avslag bør endre navn og mye av denne klassen skal skrives om når vi kommer dit
internal fun finnVurdering(
vedtaksperiodeId: UUID,
generasjonId: Long,
Expand Down Expand Up @@ -128,28 +127,27 @@ class VedtakBegrunnelseDao(queryRunner: QueryRunner) : QueryRunner by queryRunne
}
}

internal fun finnAlleAvslag(
internal fun finnAlleVedtakBegrunnelser(
vedtaksperiodeId: UUID,
utbetalingId: UUID,
): Set<no.nav.helse.spesialist.api.graphql.schema.Avslag> =
asSQL(
"""
SELECT b.type, b.tekst, a.opprettet, s.ident, a.invalidert FROM vedtak_begrunnelse a
INNER JOIN behandling beh ON a.generasjon_ref = beh.id
INNER JOIN begrunnelse b ON b.id = a.begrunnelse_ref
INNER JOIN saksbehandler s ON s.oid = b.saksbehandler_ref
WHERE a.vedtaksperiode_id = :vedtaksperiodeId AND beh.utbetaling_id = :utbetalingId
ORDER BY opprettet DESC
""".trimIndent(),
"vedtaksperiodeId" to vedtaksperiodeId,
"utbetalingId" to utbetalingId,
).list { avslag ->
no.nav.helse.spesialist.api.graphql.schema.Avslag(
enumValueOf(avslag.string("type")),
avslag.string("tekst"),
avslag.localDateTime("opprettet"),
avslag.string("ident"),
avslag.boolean("invalidert"),
)
}.toSet()
) = asSQL(
"""
SELECT b.type, b.tekst, a.opprettet, s.ident, a.invalidert FROM vedtak_begrunnelse a
INNER JOIN behandling beh ON a.generasjon_ref = beh.id
INNER JOIN begrunnelse b ON b.id = a.begrunnelse_ref
INNER JOIN saksbehandler s ON s.oid = b.saksbehandler_ref
WHERE a.vedtaksperiode_id = :vedtaksperiodeId AND beh.utbetaling_id = :utbetalingId
ORDER BY opprettet DESC
""".trimIndent(),
"vedtaksperiodeId" to vedtaksperiodeId,
"utbetalingId" to utbetalingId,
).list { avslag ->
VedtakBegrunnelseMedSaksbehandlerIdentFraDatabase(
type = enumValueOf(avslag.string("type")),
begrunnelse = avslag.string("tekst"),
opprettet = avslag.localDateTime("opprettet"),
saksbehandlerIdent = avslag.string("ident"),
invalidert = avslag.boolean("invalidert"),
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package no.nav.helse.db

import java.time.LocalDateTime

data class VedtakBegrunnelseMedSaksbehandlerIdentFraDatabase(
val type: VedtakBegrunnelseTypeFraDatabase,
val begrunnelse: String,
val opprettet: LocalDateTime,
val saksbehandlerIdent: String,
val invalidert: Boolean,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package no.nav.helse.db

enum class VedtakBegrunnelseTypeFraDatabase {
AVSLAG,
DELVIS_AVSLAG,
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import no.nav.helse.db.PgPeriodehistorikkDao
import no.nav.helse.db.ReservasjonDao
import no.nav.helse.db.SaksbehandlerDao
import no.nav.helse.db.VedtakBegrunnelseDao
import no.nav.helse.db.VedtakBegrunnelseTypeFraDatabase
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.mediator.overstyring.Overstyringlagrer
import no.nav.helse.mediator.overstyring.Saksbehandlingsmelder
Expand Down Expand Up @@ -63,6 +64,7 @@ import no.nav.helse.spesialist.api.feilhåndtering.IkkeTilgang
import no.nav.helse.spesialist.api.feilhåndtering.ManglerVurderingAvVarsler
import no.nav.helse.spesialist.api.feilhåndtering.OppgaveIkkeTildelt
import no.nav.helse.spesialist.api.graphql.mutation.Avslagshandling
import no.nav.helse.spesialist.api.graphql.mutation.Avslagstype
import no.nav.helse.spesialist.api.graphql.mutation.VedtakMutation.VedtakResultat
import no.nav.helse.spesialist.api.graphql.schema.AnnulleringData
import no.nav.helse.spesialist.api.graphql.schema.ArbeidsforholdOverstyringHandling
Expand Down Expand Up @@ -359,7 +361,20 @@ internal class SaksbehandlerMediator(
override fun hentAvslag(
vedtaksperiodeId: UUID,
utbetalingId: UUID,
): Set<Avslag> = vedtakBegrunnelseDao.finnAlleAvslag(vedtaksperiodeId, utbetalingId)
): Set<Avslag> =
vedtakBegrunnelseDao.finnAlleVedtakBegrunnelser(vedtaksperiodeId, utbetalingId).map {
Avslag(
type =
when (it.type) {
VedtakBegrunnelseTypeFraDatabase.AVSLAG -> Avslagstype.AVSLAG
VedtakBegrunnelseTypeFraDatabase.DELVIS_AVSLAG -> Avslagstype.DELVIS_AVSLAG
},
begrunnelse = it.begrunnelse,
opprettet = it.opprettet,
saksbehandlerIdent = it.saksbehandlerIdent,
invalidert = it.invalidert,
)
}.toSet()

override fun håndterAvslag(
oppgaveId: Long,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import DatabaseIntegrationTest
import kotliquery.queryOf
import kotliquery.sessionOf
import no.nav.helse.db.VedtakBegrunnelseDao
import no.nav.helse.spesialist.api.graphql.mutation.Avslagstype
import no.nav.helse.db.VedtakBegrunnelseTypeFraDatabase
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Assertions.assertNotNull
Expand Down Expand Up @@ -90,12 +90,11 @@ internal class VedtakBegrunnelseDaoTest : DatabaseIntegrationTest() {
saksbehandlerOid = oid
)

val lagredeAvslag: List<no.nav.helse.spesialist.api.graphql.schema.Avslag> =
dao.finnAlleAvslag(VEDTAKSPERIODE, UTBETALING_ID).toList()
val lagredeAvslag = dao.finnAlleVedtakBegrunnelser(VEDTAKSPERIODE, UTBETALING_ID)

assertEquals(2, lagredeAvslag.size)
assertEquals(Avslagstype.AVSLAG, lagredeAvslag.last().type)
assertEquals(Avslagstype.DELVIS_AVSLAG, lagredeAvslag.first().type)
assertEquals(VedtakBegrunnelseTypeFraDatabase.AVSLAG, lagredeAvslag.last().type)
assertEquals(VedtakBegrunnelseTypeFraDatabase.DELVIS_AVSLAG, lagredeAvslag.first().type)
assertEquals("En individuell begrunelse", lagredeAvslag.last().begrunnelse)
assertEquals("En individuell begrunelse delvis avslag retter skrivefeil", lagredeAvslag.first().begrunnelse)
assertEquals(SAKSBEHANDLER_IDENT, lagredeAvslag.last().saksbehandlerIdent)
Expand Down

0 comments on commit 9df0fd5

Please sign in to comment.