From e39048266a604052ddb43aaea0fc46d67370ce71 Mon Sep 17 00:00:00 2001 From: Jonas Hasle Date: Fri, 9 Aug 2024 12:13:30 +0200 Subject: [PATCH] :bug: Legger inn serial id i annullering_arsak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - primary key på vedtaksperiode_id lagrer bare 1 rad naturligvis --- src/main/kotlin/no/nav/helse/Annullering.kt | 8 +++--- .../migration/V74__id_i_annullering_arsak.sql | 8 ++++++ src/test/kotlin/no/nav/helse/Database.kt | 26 +++++++------------ 3 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 src/main/resources/db/migration/V74__id_i_annullering_arsak.sql diff --git a/src/main/kotlin/no/nav/helse/Annullering.kt b/src/main/kotlin/no/nav/helse/Annullering.kt index ae009d4..40eb30b 100644 --- a/src/main/kotlin/no/nav/helse/Annullering.kt +++ b/src/main/kotlin/no/nav/helse/Annullering.kt @@ -66,18 +66,18 @@ data class Annullering( @Language("PostgreSQL") val årsakStatement = """ INSERT INTO annullering_arsak( - vedtaksperiode_id, arsak, - key + key, + vedtaksperiode_id ) VALUES (?, ?, ?); """ annullering.arsaker.forEach { arsak -> run( queryOf( årsakStatement, - annullering.vedtaksperiodeId, arsak.arsak, - arsak.key + arsak.key, + annullering.vedtaksperiodeId ).asUpdate ) } diff --git a/src/main/resources/db/migration/V74__id_i_annullering_arsak.sql b/src/main/resources/db/migration/V74__id_i_annullering_arsak.sql new file mode 100644 index 0000000..ab233b6 --- /dev/null +++ b/src/main/resources/db/migration/V74__id_i_annullering_arsak.sql @@ -0,0 +1,8 @@ +DROP TABLE annullering_arsak; +CREATE TABLE annullering_arsak +( + id SERIAL PRIMARY KEY, + arsak TEXT NOT NULL, + key VARCHAR(32) NOT NULL, + vedtaksperiode_id VARCHAR REFERENCES annullering (id) NOT NULL +); \ No newline at end of file diff --git a/src/test/kotlin/no/nav/helse/Database.kt b/src/test/kotlin/no/nav/helse/Database.kt index 0f8b149..a29004e 100644 --- a/src/test/kotlin/no/nav/helse/Database.kt +++ b/src/test/kotlin/no/nav/helse/Database.kt @@ -24,41 +24,35 @@ fun DataSource.annulleringer(): List { this.run( queryOf( """ -SELECT a.saksbehandler, a.id, a.begrunnelser, a.kommentar, a.opprettet, aa.arsak, aa.key +SELECT a.saksbehandler, a.id, a.begrunnelser, a.kommentar, a.opprettet FROM annullering a -LEFT JOIN annullering_arsak aa ON aa.vedtaksperiode_id = a.id ORDER BY a.opprettet DESC """ ) .map { - val årsak = this.run( + val årsaker = this.run( queryOf(""" SELECT arsak, key FROM annullering_arsak - """ - ).map {årsak -> årsak.annulleringÅrsak() }.asList) + WHERE vedtaksperiode_id = :annulleringId + """, mapOf( + "annulleringId" to it.string("id") + )).map {årsak -> årsak.annulleringÅrsak() }.asList) - it.annullering(årsak) + it.annullering(årsaker) }.asList ) } } -fun Row.annullering(årsak: List?) = +fun Row.annullering(årsaker: List?) = Annullering( saksbehandler = uuid("saksbehandler"), vedtaksperiodeId = UUID.fromString(string("id")), - begrunnelser = stringOrNull("arsak")?.let { listOf(string("arsak")) } ?: stringList("begrunnelser"), + begrunnelser = årsaker?.takeUnless { it.isEmpty() }?.let { it.map { årsak -> årsak.arsak } } ?: stringList("begrunnelser"), kommentar = stringOrNull("kommentar"), opprettet = localDateTime("opprettet"), - arsaker = årsak?.takeUnless { årsak.isEmpty() }?.let { - listOf( - AnnulleringArsak( - arsak = string("arsak"), - key = string("key") - ) - ) - } ?: emptyList() + arsaker = årsaker?.takeUnless { it.isEmpty() } ?: emptyList() ) fun Row.annulleringÅrsak(): AnnulleringArsak =