Skip to content

Commit

Permalink
♻️ Deduplisering av mapping i GenerasjonDao
Browse files Browse the repository at this point in the history
  • Loading branch information
havstein committed Oct 29, 2024
1 parent 587b13e commit da5e964
Showing 1 changed file with 16 additions and 36 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.helse.spesialist.api.vedtak

import kotliquery.Row
import no.nav.helse.HelseDao.Companion.asSQL
import no.nav.helse.db.MedDataSource
import no.nav.helse.db.QueryRunner
Expand All @@ -19,15 +20,7 @@ internal class GenerasjonDao(dataSource: DataSource) : QueryRunner by MedDataSou
ORDER BY svg.id DESC LIMIT 1;
""".trimIndent(),
"oppgave_id" to oppgaveId,
).single {
Vedtaksperiode(
it.uuid("vedtaksperiode_id"),
it.localDate("fom"),
it.localDate("tom"),
it.localDate("skjæringstidspunkt"),
emptySet(),
)
}
).single { it.tilVedtaksperiode() }

internal fun gjeldendeGenerasjonerForPerson(oppgaveId: Long): Set<Vedtaksperiode> =
asSQL(
Expand All @@ -42,15 +35,7 @@ internal class GenerasjonDao(dataSource: DataSource) : QueryRunner by MedDataSou
ORDER BY svg.vedtaksperiode_id, svg.id DESC;
""".trimIndent(),
"oppgave_id" to oppgaveId,
).list {
Vedtaksperiode(
it.uuid("vedtaksperiode_id"),
it.localDate("fom"),
it.localDate("tom"),
it.localDate("skjæringstidspunkt"),
emptySet(),
)
}.toSet()
).list { it.tilVedtaksperiode() }.toSet()

internal fun gjeldendeGenerasjonFor(
oppgaveId: Long,
Expand All @@ -66,15 +51,7 @@ internal class GenerasjonDao(dataSource: DataSource) : QueryRunner by MedDataSou
ORDER BY svg.id DESC LIMIT 1;
""".trimIndent(),
"oppgave_id" to oppgaveId,
).single {
Vedtaksperiode(
it.uuid("vedtaksperiode_id"),
it.localDate("fom"),
it.localDate("tom"),
it.localDate("skjæringstidspunkt"),
varselGetter(it.uuid("unik_id")),
)
}
).single { it.tilVedtaksperiode(varselGetter) }

internal fun gjeldendeGenerasjonerForPerson(
oppgaveId: Long,
Expand All @@ -92,13 +69,16 @@ internal class GenerasjonDao(dataSource: DataSource) : QueryRunner by MedDataSou
ORDER BY svg.vedtaksperiode_id, svg.id DESC;
""".trimIndent(),
"oppgave_id" to oppgaveId,
).list {
Vedtaksperiode(
it.uuid("vedtaksperiode_id"),
it.localDate("fom"),
it.localDate("tom"),
it.localDate("skjæringstidspunkt"),
varselGetter(it.uuid("unik_id")),
)
}.toSet()
).list { it.tilVedtaksperiode(varselGetter) }.toSet()

private fun Row.tilVedtaksperiode(varselGetter: (generasjonId: UUID) -> Set<Varsel>) = tilVedtaksperiode(varselGetter(uuid("unik_id")))

private fun Row.tilVedtaksperiode(varsler: Set<Varsel> = emptySet()) =
Vedtaksperiode(
uuid("vedtaksperiode_id"),
localDate("fom"),
localDate("tom"),
localDate("skjæringstidspunkt"),
varsler,
)
}

0 comments on commit da5e964

Please sign in to comment.