-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Send udelte samtalereferat til oversikten (#897)
* legg til funksjonalitet for melding til oversikten * Legg til TODOs på steder der vi må agere * Legg til sql-fil for oversikt-tabell * Test at når udelte referater opprettes sendes melding til oversikten * Fiks testoppsett * Legg til TODOs på steder i koden der vi må sende melding * WIP: Send startmelding * WIP: Test at vi putter melding i utboksen * Test sending av startmelding * Send melding til oversikten Signed-off-by: Henrik uran <[email protected]> * Rensk opp ny databasetabell mellom hver test * WIP: Lagre sendingsUuid * oppdater flyway script for meldinger til oversikten for udelt samtalereferat * legg til operasjon for melding til oversikten, og rename repository til dao * legg til melding key for møte * legg til håndtering av caser for melding til oversikten for møte og samtalereferat * Set ny meldinguuid * cleanup håndtering av caser for melding til oversikten og bigquery * Implementer lagret oversikten melding * WIP: Ha egen mappingtabell for oversiktenmeldinger og aktiviteter * Lag ID på ny tabell * Lagre meldingKeyUuid i koblingstabell * Legg til composite key opå meldingstabell * Tilpass at hverken melding_key eller aktivitet_id er unike * Fiks småting for at koden skal kjøre * Fjern test som ikke er relevant * Legg til enhetstest av oversiktenMelding * legg til producer for sending av melding på kafka * legg til funksjonalitet for å lagre stoppmelding om udelt samtalereferat * Logg hvis meldingKey ikke eksisterer * når samtalereferat deles med bruker sendes top melding til oversikten test Signed-off-by: Henrik uran <[email protected]> * Test stoppmelding * Legg til nytt testcase * Bruk producer * WIP: Test oversiktenService * Fiks service tester * Fiks navn på topic * Test at melding blir markert som sendt * Legg publisering av meldinger bak feature toggle * Errorhåndtering * endre schedule til hver time * Legg til topic i application properties for test * Legg til tabell i ryddeliste * cleanup imports --------- Signed-off-by: Henrik uran <[email protected]> Co-authored-by: erikb <[email protected]> Co-authored-by: Mads Lee Giil <[email protected]> Co-authored-by: Henrik uran <[email protected]>
- Loading branch information
1 parent
666c7c8
commit 8746e73
Showing
19 changed files
with
743 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,4 +15,4 @@ public class MoteData { | |
|
||
String referat; | ||
boolean referatPublisert; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
src/main/kotlin/no/nav/veilarbaktivitet/oversikten/OversiktenMelding.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package no.nav.veilarbaktivitet.oversikten | ||
|
||
import java.time.LocalDateTime | ||
|
||
data class OversiktenMelding( | ||
val personID: String, | ||
val avsender: String = "veilarbaktivitet", | ||
val kategori: Kategori, | ||
val operasjon: Operasjon, | ||
val hendelse: Hendelse | ||
) { | ||
companion object { | ||
private fun baseUrlVeilarbpersonflate(erProd: Boolean) = | ||
if (erProd) "https://veilarbpersonflate.intern.nav.no" else "https://veilarbpersonflate.ansatt.dev.nav.no" | ||
|
||
fun forUdeltSamtalereferat(fnr: String, operasjon: Operasjon, erProd: Boolean) = OversiktenMelding( | ||
personID = fnr, | ||
kategori = Kategori.UDELT_SAMTALEREFERAT, | ||
operasjon = operasjon, | ||
hendelse = Hendelse( | ||
beskrivelse = "Bruker har et udelt samtalereferat", | ||
dato = LocalDateTime.now(), | ||
lenke = "${baseUrlVeilarbpersonflate(erProd)}/aktivitetsplan", | ||
) | ||
) | ||
} | ||
|
||
data class Hendelse ( | ||
val beskrivelse: String, | ||
val dato: LocalDateTime, | ||
val lenke: String, | ||
val detaljer: String? = null, | ||
) | ||
|
||
enum class Kategori { | ||
UDELT_SAMTALEREFERAT | ||
} | ||
|
||
enum class Operasjon { | ||
START, | ||
OPPDATER, | ||
STOPP | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
src/main/kotlin/no/nav/veilarbaktivitet/oversikten/OversiktenMeldingAktivitetMappingDAO.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package no.nav.veilarbaktivitet.oversikten | ||
|
||
import no.nav.veilarbaktivitet.aktivitet.AktivitetId | ||
import org.springframework.jdbc.core.RowMapper | ||
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource | ||
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate | ||
import org.springframework.stereotype.Repository | ||
import java.sql.ResultSet | ||
import java.util.* | ||
|
||
@Repository | ||
open class OversiktenMeldingAktivitetMappingDAO(private val template: NamedParameterJdbcTemplate) { | ||
|
||
open fun lagreKoblingMellomOversiktenMeldingOgAktivitet(oversiktenMeldingKey: MeldingKey, aktivitetId: AktivitetId, kategori: OversiktenMelding.Kategori) { | ||
val sql = """ | ||
insert into oversikten_melding_aktivitet_mapping (oversikten_melding_key, aktivitet_id, kategori) | ||
values (:oversiktenMeldingKey, :aktivitetId, :kategori::OVERSIKTEN_KATEGORI) | ||
""".trimIndent() | ||
val params = MapSqlParameterSource() | ||
.addValue("oversiktenMeldingKey", oversiktenMeldingKey) | ||
.addValue("aktivitetId", aktivitetId) | ||
.addValue("kategori", kategori.name) | ||
template.update(sql, params) | ||
} | ||
|
||
open fun hentMeldingKeyForAktivitet(aktivitetId: AktivitetId, kategori: OversiktenMelding.Kategori) : UUID? { | ||
val sql = """ | ||
select oversikten_melding_key | ||
from oversikten_melding_aktivitet_mapping | ||
where aktivitet_id = :aktivitetId and kategori = :kategori::OVERSIKTEN_KATEGORI | ||
""".trimIndent() | ||
|
||
val params = mapOf("aktivitetId" to aktivitetId, "kategori" to kategori.name) | ||
|
||
return template.queryForObject(sql, params, rowMapper) | ||
} | ||
|
||
open val rowMapper = RowMapper { rs: ResultSet, rowNum: Int -> | ||
rs.getObject("oversikten_melding_key", UUID::class.java) | ||
} | ||
} |
45 changes: 45 additions & 0 deletions
45
src/main/kotlin/no/nav/veilarbaktivitet/oversikten/OversiktenMeldingMedMetadata.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
package no.nav.veilarbaktivitet.oversikten | ||
|
||
import no.nav.common.types.identer.Fnr | ||
import java.time.ZonedDateTime | ||
import java.util.* | ||
|
||
open class OversiktenMeldingMedMetadata( | ||
val meldingKey: MeldingKey, | ||
val fnr: Fnr, | ||
val opprettet: ZonedDateTime = ZonedDateTime.now(), | ||
val tidspunktSendt: ZonedDateTime? = null, | ||
val utsendingStatus: UtsendingStatus = UtsendingStatus.SKAL_SENDES, | ||
val meldingSomJson: String, | ||
val kategori: OversiktenMelding.Kategori, | ||
val operasjon: OversiktenMelding.Operasjon, | ||
) | ||
|
||
class LagretOversiktenMeldingMedMetadata( | ||
val id: Long, | ||
meldingKey: MeldingKey, | ||
fnr: Fnr, | ||
opprettet: ZonedDateTime, | ||
tidspunktSendt: ZonedDateTime?, | ||
utsendingStatus: UtsendingStatus, | ||
meldingSomJson: String, | ||
kategori: OversiktenMelding.Kategori, | ||
operasjon: OversiktenMelding.Operasjon | ||
) : OversiktenMeldingMedMetadata( | ||
meldingKey = meldingKey, | ||
fnr = fnr, | ||
opprettet = opprettet, | ||
tidspunktSendt = tidspunktSendt, | ||
utsendingStatus = utsendingStatus, | ||
meldingSomJson = meldingSomJson, | ||
kategori = kategori, | ||
operasjon = operasjon | ||
) | ||
|
||
typealias MeldingKey = UUID | ||
|
||
enum class UtsendingStatus { | ||
SKAL_SENDES, | ||
SENDT, | ||
SKAL_IKKE_SENDES | ||
} |
88 changes: 88 additions & 0 deletions
88
src/main/kotlin/no/nav/veilarbaktivitet/oversikten/OversiktenMeldingMedMetadataDAO.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
package no.nav.veilarbaktivitet.oversikten | ||
|
||
import no.nav.common.types.identer.Fnr | ||
import no.nav.veilarbaktivitet.config.database.Database | ||
import no.nav.veilarbaktivitet.veilarbdbutil.VeilarbAktivitetSqlParameterSource | ||
import org.springframework.jdbc.core.RowMapper | ||
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate | ||
import org.springframework.jdbc.support.GeneratedKeyHolder | ||
import org.springframework.stereotype.Repository | ||
import java.sql.ResultSet | ||
import java.util.* | ||
|
||
@Repository | ||
open class OversiktenMeldingMedMetadataDAO( | ||
private val jdbc: NamedParameterJdbcTemplate | ||
) { | ||
open fun lagre(oversiktenMeldingMedMetadata: OversiktenMeldingMedMetadata): Long { | ||
val sql = """ | ||
INSERT INTO oversikten_melding_med_metadata ( | ||
fnr, opprettet, utsending_status, melding, kategori, melding_key, operasjon) | ||
VALUES ( :fnr, :opprettet, :utsending_status::OVERSIKTEN_UTSENDING_STATUS, :melding::json, :kategori::OVERSIKTEN_KATEGORI, :melding_key, :operasjon::OVERSIKTEN_OPERASJON) | ||
""".trimIndent() | ||
|
||
val params = VeilarbAktivitetSqlParameterSource().apply { | ||
addValue("fnr", oversiktenMeldingMedMetadata.fnr.get()) | ||
addValue("opprettet", oversiktenMeldingMedMetadata.opprettet) | ||
addValue("utsending_status", oversiktenMeldingMedMetadata.utsendingStatus.name) | ||
addValue("melding", oversiktenMeldingMedMetadata.meldingSomJson) | ||
addValue("kategori", oversiktenMeldingMedMetadata.kategori.name) | ||
addValue("melding_key", oversiktenMeldingMedMetadata.meldingKey) | ||
addValue("operasjon", oversiktenMeldingMedMetadata.operasjon.name) | ||
} | ||
|
||
val keyHolder = GeneratedKeyHolder() | ||
jdbc.update(sql, params, keyHolder, arrayOf("id")) | ||
|
||
return keyHolder.key?.toLong() ?: throw IllegalStateException("Kunne ikke hente ut nøkkel til lagret melding") | ||
} | ||
|
||
open fun hentAlleSomSkalSendes(): List<LagretOversiktenMeldingMedMetadata> { | ||
val sql = """ | ||
SELECT * FROM oversikten_melding_med_metadata WHERE utsending_status = 'SKAL_SENDES' | ||
""".trimIndent() | ||
|
||
return jdbc.query(sql, rowMapper) | ||
} | ||
|
||
open fun markerSomSendt(id: Long) { | ||
val sql = """ | ||
UPDATE oversikten_melding_med_metadata | ||
SET utsending_status = 'SENDT', | ||
tidspunkt_sendt = now() | ||
WHERE id = :id | ||
""".trimIndent() | ||
|
||
val params = VeilarbAktivitetSqlParameterSource().apply { | ||
addValue("id", id) | ||
} | ||
|
||
jdbc.update(sql, params) | ||
} | ||
|
||
open fun hent(id : Long) : LagretOversiktenMeldingMedMetadata? { | ||
val sql = """ | ||
SELECT * FROM oversikten_melding_med_metadata WHERE id = :id | ||
""".trimIndent() | ||
|
||
val params = VeilarbAktivitetSqlParameterSource().apply { | ||
addValue("id", id) | ||
} | ||
|
||
return jdbc.queryForObject(sql, params, rowMapper) | ||
} | ||
|
||
open val rowMapper = RowMapper { rs: ResultSet, rowNum: Int -> | ||
LagretOversiktenMeldingMedMetadata( | ||
id = rs.getLong("id"), | ||
fnr = Fnr.of(rs.getString("fnr")), | ||
opprettet = Database.hentZonedDateTime(rs, "opprettet"), | ||
tidspunktSendt = Database.hentZonedDateTime(rs, "tidspunkt_sendt"), | ||
utsendingStatus = UtsendingStatus.valueOf(rs.getString("utsending_status")), | ||
meldingSomJson = rs.getString("melding"), | ||
kategori = OversiktenMelding.Kategori.valueOf(rs.getString("kategori")), | ||
meldingKey = UUID.fromString(rs.getString("melding_key")), | ||
operasjon = OversiktenMelding.Operasjon.valueOf(rs.getString("operasjon")), | ||
) | ||
} | ||
} |
Oops, something went wrong.