Skip to content

Commit 51bcef4

Browse files
committed
Try to fetch beregningsdato from backup table.
1 parent 34cc5df commit 51bcef4

File tree

3 files changed

+48
-8
lines changed

3 files changed

+48
-8
lines changed

dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/PostgresInntektStore.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,17 @@ internal class PostgresInntektStore(private val dataSource: DataSource) : Inntek
8888

8989
override fun getBeregningsdato(inntektId: InntektId): LocalDate {
9090
@Language("sql")
91-
val statement = """SELECT beregningsdato
92-
FROM inntekt_V1_person_mapping
93-
WHERE inntektId = ?
91+
val statement = """SELECT coalesce(
92+
(SELECT beregningsdato FROM inntekt_V1_person_mapping WHERE inntektId = :inntektId),
93+
(SELECT beregningsdato FROM temp_inntekt_V1_person_mapping WHERE inntektId = :inntektId)
94+
) as beregningsdato
9495
""".trimMargin()
9596

9697
return using(sessionOf(dataSource)) { session ->
9798
session.run(
98-
queryOf(statement, inntektId.id
99+
queryOf(statement, mapOf("inntektId" to inntektId.id)
99100
).map { row ->
100-
row.localDate("beregningsdato")
101+
row.localDateOrNull("beregningsdato")
101102
}.asSingle
102103
) ?: throw InntektNotFoundException("Inntekt with id $inntektId not found.")
103104
}
@@ -194,9 +195,9 @@ internal class PostgresInntektStore(private val dataSource: DataSource) : Inntek
194195
tx.run(
195196
queryOf(
196197
"INSERT INTO inntekt_V1_manuelt_redigert VALUES(:id,:redigert)", mapOf(
197-
"id" to inntektId.id,
198-
"redigert" to it.redigertAv
199-
)
198+
"id" to inntektId.id,
199+
"redigert" to it.redigertAv
200+
)
200201
).asUpdate
201202
)
202203
}

dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/db/PostgresTest.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,23 @@ internal class PostgresInntektStoreTest {
280280
}
281281
}
282282

283+
@Test
284+
fun `Sucessfully get beregningsdato from backup table`() {
285+
withCleanDb {
286+
migrate(DataSource.instance, locations = listOf("db/migration", "unit-testdata"))
287+
288+
with(PostgresInntektStore(DataSource.instance)) {
289+
val beregningsDatoFromMain = getBeregningsdato(InntektId("01E46501PMY105AFXE4XF088MV"))
290+
assertNotNull(beregningsDatoFromMain)
291+
assertEquals(LocalDate.of(2019, 1, 1), beregningsDatoFromMain)
292+
293+
val beregningsDatoFromBackup = getBeregningsdato(InntektId("01EDBSHDENAHCVBYT02W160E6X"))
294+
assertNotNull(beregningsDatoFromBackup)
295+
assertEquals(LocalDate.of(2019, 3, 3), beregningsDatoFromBackup)
296+
}
297+
}
298+
}
299+
283300
@Test
284301
fun ` Getting beregningsdato for unknown inntektId should throw error`() {
285302
withMigratedDb {
@@ -292,6 +309,7 @@ internal class PostgresInntektStoreTest {
292309
}
293310
}
294311
}
312+
295313
@Test
296314
fun ` Should mark an inntekt as used `() {
297315
withMigratedDb {
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
INSERT INTO inntekt_v1(id, brukt ,inntekt)
2+
VALUES ('01E46501PMY105AFXE4XF088MV', TRUE, '{
3+
"arbeidsInntektMaaned": [],
4+
"ident": {
5+
"identifikator": "-1",
6+
"aktoerType": "NATURLIG_IDENT"
7+
}
8+
}')
9+
ON CONFLICT DO NOTHING;
10+
11+
INSERT INTO inntekt_v1_person_mapping (inntektid, aktørid, vedtakid, fnr, beregningsdato)
12+
VALUES ('01E46501PMY105AFXE4XF088MV', 'INGEN_INNTEKT', 12345, null, '2019-01-01')
13+
ON CONFLICT DO NOTHING;
14+
15+
INSERT INTO temp_inntekt_v1_person_mapping (inntektid, aktørid, vedtakid, fnr, beregningsdato)
16+
VALUES ('01E46501PMY105AFXE4XF088MV', 'INGEN_INNTEKT', 12345, null, '2019-02-02')
17+
ON CONFLICT DO NOTHING;
18+
19+
INSERT INTO temp_inntekt_v1_person_mapping (inntektid, aktørid, vedtakid, fnr, beregningsdato)
20+
VALUES ('01EDBSHDENAHCVBYT02W160E6X', 'INGEN_INNTEKT', 12345, null, '2019-03-03')
21+
ON CONFLICT DO NOTHING;

0 commit comments

Comments
 (0)