Skip to content

Commit

Permalink
Slett sak løser (#365)
Browse files Browse the repository at this point in the history
  • Loading branch information
b162214 authored Dec 4, 2023
1 parent 991f36e commit a6b7122
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ enum class BehovType {
DISTRIBUER_IM,
NOTIFIKASJON_HENT_ID,
OPPRETT_SAK,
SLETT_SAK,
PERSISTER_SAK_ID,
OPPRETT_OPPGAVE,
PERSISTER_OPPGAVE_ID,
Expand Down Expand Up @@ -51,6 +52,7 @@ enum class EventName {
SAK_OPPRETTET,
SAK_FERDIGSTILT,
MANUELL_OPPRETT_SAK_REQUESTED,
MANUELL_SLETT_SAK_REQUESTED,

OPPGAVE_OPPRETT_REQUESTED,
OPPGAVE_OPPRETTET,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.mockk.coEvery
import io.mockk.coVerify
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
Expand All @@ -21,7 +22,7 @@ import org.junit.jupiter.api.TestInstance
import java.util.UUID

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class NotifikasjonTrengerInntektMeldingIT : EndToEndTest() {
class NotifikasjonIT : EndToEndTest() {

@Test
fun `Oppretter og lagrer sak etter at forespørselen er mottatt`() {
Expand Down Expand Up @@ -207,6 +208,23 @@ class NotifikasjonTrengerInntektMeldingIT : EndToEndTest() {
}
}

@Test
fun `Slett sak loeser test`() {
coEvery {
arbeidsgiverNotifikasjonKlient.hardDeleteSak(any())
} returns Unit

publish(
Key.EVENT_NAME to EventName.MANUELL_SLETT_SAK_REQUESTED.toJson(),
Key.BEHOV to BehovType.SLETT_SAK.toJson(),
Key.SAK_ID to Mock.SAK_ID.toJson()
)

Thread.sleep(5000)
coVerify(exactly = 1) { arbeidsgiverNotifikasjonKlient.hardDeleteSak(Mock.SAK_ID) }
messages.all().size shouldBe 1
}

private object Mock {
const val FNR = "fnr-123"
const val ORGNR = "orgnr-456"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ fun RapidsConnection.createNotifikasjon(

logger.info("Starter ${ManuellOpprettSakService::class.simpleName}...")
ManuellOpprettSakService(this, redisStore)

logger.info("Starter ${SlettSakLoeser::class.simpleName}...")
SlettSakLoeser(this, arbeidsgiverNotifikasjonKlient)
}

fun buildClient(environment: Environment): ArbeidsgiverNotifikasjonKlient {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package no.nav.helsearbeidsgiver.inntektsmelding.notifikasjon

import kotlinx.coroutines.runBlocking
import no.nav.helse.rapids_rivers.RapidsConnection
import no.nav.helse.rapids_rivers.River
import no.nav.helsearbeidsgiver.arbeidsgivernotifikasjon.ArbeidsgiverNotifikasjonKlient
import no.nav.helsearbeidsgiver.arbeidsgivernotifikasjon.HardDeleteSakException
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.rapidsrivers.Loeser
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Behov
import no.nav.helsearbeidsgiver.utils.log.logger
import no.nav.helsearbeidsgiver.utils.pipe.ifFalse
import no.nav.helsearbeidsgiver.utils.pipe.ifTrue

class SlettSakLoeser(
rapidsConnection: RapidsConnection,
private val arbeidsgiverNotifikasjonKlient: ArbeidsgiverNotifikasjonKlient
) : Loeser(rapidsConnection) {

private val logger = logger()

override fun accept(): River.PacketValidation {
return River.PacketValidation {
it.demandValue(Key.BEHOV.str, BehovType.SLETT_SAK.name)
it.requireKey(Key.SAK_ID.str)
}
}
private fun slettSak(
sakId: String
): Boolean {
return try {
runBlocking {
arbeidsgiverNotifikasjonKlient.hardDeleteSak(sakId)
}
true
} catch (e: HardDeleteSakException) {
sikkerLogger.error("Feil ved sletting av sak: $sakId", e)
false
}
}

override fun onBehov(behov: Behov) {
val sakId = behov[Key.SAK_ID].asText()
slettSak(sakId)
.ifTrue {
"Slettet sak: $sakId".also {
logger.info(it)
sikkerLogger.info(it)
}
}
.ifFalse { logger.error("Feil ved sletting av sak: $sakId") }
}
}

0 comments on commit a6b7122

Please sign in to comment.