Skip to content

Commit

Permalink
Legg til mulighet for å endre oppgavepåminnelser (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
magnusae authored Nov 6, 2024
1 parent 8ccb86f commit d7d6c8f
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.Oppret
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.Whoami
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.enums.SaksStatus
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.harddeletesak.HardDeleteSakVellykket
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.inputs.PaaminnelseInput
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.nysak.NySakVellykket
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.nystatussakbygrupperingsid.NyStatusSakVellykket
import no.nav.helsearbeidsgiver.arbeidsgivernotifkasjon.graphql.generated.oppgaveendrepaaminnelsebyeksternid.OppgaveEndrePaaminnelseVellykket
Expand Down Expand Up @@ -194,6 +195,31 @@ class ArbeidsgiverNotifikasjonKlient(
loggInfo("Slettet (hard) sak med id '$id'.")
}

suspend fun endreOppgavePaaminnelserByEksternId(
merkelapp: String,
eksternId: String,
idempotencyKey: String? = null,
paaminnelse: PaaminnelseInput?,
) {
loggInfo("Forsøker å endre påminnelser for oppgave med eksternId '$eksternId'.")

OppgaveEndrePaaminnelseByEksternId(
variables =
OppgaveEndrePaaminnelseByEksternId.Variables(
merkelapp = merkelapp,
eksternId = eksternId,
idempotencyKey = idempotencyKey,
paaminnelse = paaminnelse,
),
).execute(
toResult = OppgaveEndrePaaminnelseByEksternId.Result::oppgaveEndrePaaminnelseByEksternId,
toSuccess = { it as? OppgaveEndrePaaminnelseVellykket },
onError = { res, err -> Feil.endreOppgavePaaminnelserByEksternId(eksternId, res, err) },
)

loggInfo("Endret påminnelser for oppgave med eksternId '$eksternId'.")
}

suspend fun slettOppgavePaaminnelserByEksternId(
merkelapp: String,
eksternId: String,
Expand All @@ -209,7 +235,7 @@ class ArbeidsgiverNotifikasjonKlient(
).execute(
toResult = OppgaveEndrePaaminnelseByEksternId.Result::oppgaveEndrePaaminnelseByEksternId,
toSuccess = { it as? OppgaveEndrePaaminnelseVellykket },
onError = { res, err -> Feil.slettOppgavePaaminnelserByEksternId(eksternId, res, err) },
onError = { res, err -> Feil.endreOppgavePaaminnelserByEksternId(eksternId, res, err) },
)

loggInfo("Slettet påminnelser for oppgave med eksternId '$eksternId'.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ internal object Feil {
throw HardDeleteSakException(id, feilmelding)
}

fun slettOppgavePaaminnelserByEksternId(
fun endreOppgavePaaminnelserByEksternId(
eksternId: String,
resultat: OppgaveEndrePaaminnelseResultatOppgaveEndrePaaminnelseByEksternId,
feil: List<GraphQLClientError>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,85 @@ class ArbeidsgiverNotifikasjonKlientTest : FunSpec({
}
}

context(ArbeidsgiverNotifikasjonKlient::endreOppgavePaaminnelserByEksternId.name) {
test("vellykket - endre oppgavepåminnelse") {
val response = "responses/oppgaveEndrePaaminnelseByEksternId/vellykket.json".readResource()
val arbeidsgiverNotifikasjonKlient = mockArbeidsgiverNotifikasjonKlient(response)

shouldNotThrowAny {
arbeidsgiverNotifikasjonKlient.endreOppgavePaaminnelserByEksternId(
merkelapp = "mock merkelapp",
eksternId = "mock eksternId",
paaminnelse =
Paaminnelse(
tittel = "mock tittel",
innhold = "mock innhold",
tidMellomOppgaveopprettelseOgPaaminnelse = "P28D",
).tilPaaminnelseInput(),
)
}
}

test("notifikasjon finnes ikke - endre oppgavepåminnelse") {
val response = "responses/oppgaveEndrePaaminnelseByEksternId/notifikasjonFinnesIkke.json".readResource()
val arbeidsgiverNotifikasjonKlient = mockArbeidsgiverNotifikasjonKlient(response)

shouldThrowExactly<SakEllerOppgaveFinnesIkkeException> {
arbeidsgiverNotifikasjonKlient.endreOppgavePaaminnelserByEksternId(
merkelapp = "mock merkelapp",
eksternId = "mock eksternId",
paaminnelse =
Paaminnelse(
tittel = "mock tittel",
innhold = "mock innhold",
tidMellomOppgaveopprettelseOgPaaminnelse = "P28D",
).tilPaaminnelseInput(),
)
}
}

test("oppgave utført - endre oppgavepåminnelse") {
val response = "responses/oppgaveEndrePaaminnelseByEksternId/oppgavenErAlleredeUtfoert.json".readResource()
val arbeidsgiverNotifikasjonKlient = mockArbeidsgiverNotifikasjonKlient(response)

shouldThrowExactly<OppgaveAlleredeUtfoertException> {
arbeidsgiverNotifikasjonKlient.endreOppgavePaaminnelserByEksternId(
merkelapp = "mock merkelapp",
eksternId = "mock eksternId",
paaminnelse =
Paaminnelse(
tittel = "mock tittel",
innhold = "mock innhold",
tidMellomOppgaveopprettelseOgPaaminnelse = "P28D",
).tilPaaminnelseInput(),
)
}
}

withData(
"ugyldigPaaminnelseTidspunkt",
"ugyldigMerkelapp",
"ukjentProdusent",
"ukjentFeil",
) { jsonFilename ->
val response = "responses/oppgaveEndrePaaminnelseByEksternId/$jsonFilename.json".readResource()
val arbeidsgiverNotifikasjonKlient = mockArbeidsgiverNotifikasjonKlient(response)

shouldThrowExactly<OppgaveEndrePaaminnelseByEksternIdException> {
arbeidsgiverNotifikasjonKlient.endreOppgavePaaminnelserByEksternId(
merkelapp = "mock merkelapp",
eksternId = "mock eksternId",
paaminnelse =
Paaminnelse(
tittel = "mock tittel",
innhold = "mock innhold",
tidMellomOppgaveopprettelseOgPaaminnelse = "P28D",
).tilPaaminnelseInput(),
)
}
}
}

test("tom response gir egen feil") {
val response = "responses/tomResponse.json".readResource()
val arbeidsgiverNotifikasjonKlient = mockArbeidsgiverNotifikasjonKlient(response)
Expand Down

0 comments on commit d7d6c8f

Please sign in to comment.