Skip to content

Commit

Permalink
Merge branch 'main' into dependabot/gradle/avro-og-kafka-8c1c24a57b
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikg committed Nov 14, 2024
2 parents d299c58 + a220ad4 commit 574d392
Show file tree
Hide file tree
Showing 371 changed files with 7,034 additions and 4,371 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/.build-and-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
distribution: temurin
java-version: 21
- name: Inject slug/short variables
uses: rlespinasse/github-slug-action@v4
uses: rlespinasse/github-slug-action@v5
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/app-etterlatte-saksbehandling-ui.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ jobs:
cache: 'yarn'
cache-dependency-path: apps/${{ env.APP_NAME }}/client/yarn.lock
- name: Inject slug/short variables
uses: rlespinasse/github-slug-action@v4
uses: rlespinasse/github-slug-action@v5
- name: License check top level
working-directory: apps/${{ env.APP_NAME }}
run: yarn install --frozen-lockfile && yarn lisenssjekk
Expand Down
7 changes: 5 additions & 2 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

cd ./apps/etterlatte-saksbehandling-ui && yarn lint-staged
cd ./apps/etterlatte-saksbehandling-ui
yarn lint-staged --cwd ./client
yarn lint-staged --cwd ./server

changedKotlinFiles=$(git diff --name-only --cached | grep '\.kt[s"]\?$' || true)

if [ -n "${changedKotlinFiles-unset}" ]; then
kotlinversion=$(ktlint -v)
expectedVersion="ktlint version 1.4.0"
expectedVersion="ktlint version 1.4.1"
if [ "$kotlinversion" != "$expectedVersion" ]; then
echo "\033[1;31mERROR:\033[0m\tRunning version $kotlinversion needs to be $expectedVersion"
exit 1
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ Det legges ut varsler om feilmeldinger i appene på Slack i kanalen `#team-etter
Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub.
## For NAV-ansatte
## For Nav-ansatte
Interne henvendelser kan sendes via Slack i kanalen #po-pensjon-team-etterlatte.
Expand Down
6 changes: 6 additions & 0 deletions apps/etterlatte-api/.nais/dev-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,12 @@ spec:
accessPolicy:
inbound:
rules:
- application: selvbetjening-backend
namespace: etterlatte
cluster: dev-gcp
permissions:
roles:
- les-oms-sak
- application: arbeid-og-inntekt
namespace: team-inntekt
cluster: dev-fss
Expand Down
6 changes: 6 additions & 0 deletions apps/etterlatte-api/.nais/prod-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ spec:
accessPolicy:
inbound:
rules:
- application: selvbetjening-backend
namespace: etterlatte
cluster: prod-gcp
permissions:
roles:
- les-oms-sak
- application: arbeid-og-inntekt
namespace: team-inntekt
cluster: prod-fss
Expand Down
6 changes: 3 additions & 3 deletions apps/etterlatte-api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,9 @@ Det må foreligge et tjenestepensjonsforhold og -ytelse i Tjenestepensjonsregist
}
```

## Internt i NAV
## Internt i Nav

Endepunktene som er nevnt over finnes også til bruk for NAV-interne systemer, men da på `/api/pensjon/vedtak` osv.
Endepunktene som er nevnt over finnes også til bruk for Nav-interne systemer, men da på `/api/pensjon/vedtak` osv.

### Løpende omstillingsstønad
Her finnes i tillegg et endepunkt som svarer ja/nei på dette på en spesifikk dato. Dersom ytelsen slutter dagen før angitt dato, eller starter måneden etterpå så vil svaret være _nei_. **NB!** Merk at denne tjenesten _ikke gjør noe tolkning av faktisk utbetaling_ for å gi svaret, kun om ytelsen er innvilget. Så for eksempel om ytelsen er fullstendig avkortet, så vil svaret likevel være ja.
Expand Down Expand Up @@ -142,6 +142,6 @@ Appen bygges og deployes automatisk ved commits til `apps/etterlatte-api/**`.
Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub.
### For NAV-ansatte
### For Nav-ansatte
Interne henvendelser kan sendes via Slack i kanalen #po-pensjon-team-etterlatte.
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,44 @@ fun Route.behandlingSakRoutes(
accessPolicyRolesEllerAdGrupper = generateRoles(config)
issuers = setOf(Issuer.AZURE.issuerName)
}

post("/person/sak") {
val fnrOgSaktype = call.receive<FoedselsnummerDTO>()
call.respond(behandlingService.hentSakforPerson(fnrOgSaktype))
val foedselsnummer = call.receive<FoedselsnummerDTO>()
call.respond(behandlingService.hentSakforPerson(foedselsnummer))
}
}

route("api/sak") {
install(AuthorizationPlugin) {
accessPolicyRolesEllerAdGrupper = setOf("les-bp-sak", "les-oms-sak")
route("oms/har_sak") {
install(AuthorizationPlugin) {
accessPolicyRolesEllerAdGrupper = setOf("les-oms-sak")
}
post {
val foedselsnummer = call.receive<FoedselsnummerDTO>()
val saker = behandlingService.hentSakforPerson(foedselsnummer)

call.respond(HarOMSSakIGjenny(saker.isNotEmpty()))
}
}

get("/{$SAKID_CALL_PARAMETER}") {
val sak =
behandlingService.hentSak(sakId)
?: throw IkkeFunnetException(
code = "SAK_IKKE_FUNNET",
detail = "Sak med id=$sakId finnes ikke",
)
route("/${SAKID_CALL_PARAMETER}") {
install(AuthorizationPlugin) {
accessPolicyRolesEllerAdGrupper = setOf("les-bp-sak", "les-oms-sak")
}
get {
val sak =
behandlingService.hentSak(sakId)
?: throw IkkeFunnetException(
code = "SAK_IKKE_FUNNET",
detail = "Sak med id=$sakId finnes ikke",
)

call.respond(sak)
call.respond(sak)
}
}
}
}

data class HarOMSSakIGjenny(
val harOMSSak: Boolean,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import no.nav.etterlatte.libs.common.feilhaandtering.ForespoerselException
import no.nav.etterlatte.libs.common.feilhaandtering.IkkeFunnetException
import no.nav.etterlatte.libs.common.feilhaandtering.IkkeTillattException
import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil

data class Tjenestepensjonnummer(
val value: String,
) {
init {
require(value == value.replace(Regex("[^0-9]"), ""))
checkInternFeil(value == value.replace(Regex("[^0-9]"), "")) { "Feil innhold i Tjenestepensjonnummer" }
}
}

Expand Down
6 changes: 3 additions & 3 deletions apps/etterlatte-behandling/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ REST-appliksasjon og Kafka-produsent som holder styr på saker, behandlinger og

### Sak

En sak er et overheng som representerer alt NAV vet eller gjør i forbindelse med en spesifikk ytelse til en spesifikk
En sak er et overheng som representerer alt Nav vet eller gjør i forbindelse med en spesifikk ytelse til en spesifikk
person. Én person har et unikt saksnummer for en spesifikk ytelse.

### Behandling
Expand All @@ -25,7 +25,7 @@ En Behandling starter når det er identifisert et behandlingsbehov. En behandlin
### Behandlingsbehov

Et behandlingsbehov representerer at det har skjedd noe som gjør at det må gjøres en behandling i en sak. Det kan for
eksempel være at NAV har mottatt en søknad.
eksempel være at Nav har mottatt en søknad.

### Oppgave

Expand Down Expand Up @@ -94,6 +94,6 @@ kommando oppretter ny symlink til colima sin docker.sock.

Spørsmål knyttet til koden eller prosjektet kan stilles som issues her på GitHub.

### For NAV-ansatte
### For Nav-ansatte

Interne henvendelser kan sendes via Slack i kanalen #po-pensjon-team-etterlatte.
4 changes: 1 addition & 3 deletions apps/etterlatte-behandling/src/main/kotlin/Application.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ import no.nav.etterlatte.inntektsjustering.aarligInntektsjusteringRoute
import no.nav.etterlatte.institusjonsopphold.InstitusjonsoppholdService
import no.nav.etterlatte.institusjonsopphold.institusjonsoppholdRoute
import no.nav.etterlatte.kodeverk.kodeverk
import no.nav.etterlatte.krr.krrRoute
import no.nav.etterlatte.libs.common.TimerJob
import no.nav.etterlatte.libs.common.logging.sikkerLoggOppstart
import no.nav.etterlatte.libs.common.logging.sikkerlogger
Expand Down Expand Up @@ -94,7 +93,6 @@ private fun timerJobs(context: ApplicationContext): List<TimerJob> =
context.doedsmeldingerJob,
context.doedsmeldingerReminderJob,
context.saksbehandlerJob,
context.oppgaveFristGaarUtJobb,
context.omregningKlassifikasjonskodeJob,
)

Expand Down Expand Up @@ -188,6 +186,7 @@ private fun Route.settOppRoutes(applicationContext: ApplicationContext) {
manuellRevurderingService = applicationContext.manuellRevurderingService,
omgjoeringKlageRevurderingService = applicationContext.omgjoeringKlageRevurderingService,
automatiskRevurderingService = applicationContext.automatiskRevurderingService,
aarligInntektsjusteringJobbService = applicationContext.aarligInntektsjusteringJobbService,
)
omregningRoutes(omregningService = applicationContext.omregningService)
aarligInntektsjusteringRoute(service = applicationContext.aarligInntektsjusteringJobbService)
Expand Down Expand Up @@ -220,7 +219,6 @@ private fun Route.settOppRoutes(applicationContext: ApplicationContext) {

tilgangRoutes(applicationContext.tilgangService)
kodeverk(applicationContext.kodeverkService)
krrRoute(applicationContext.tilgangService, applicationContext.krrKlient)
vilkaarsvurdering(applicationContext.vilkaarsvurderingService)
aldersovergang(applicationContext.aldersovergangService)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import no.nav.etterlatte.behandling.revurdering.RevurderingDao
import no.nav.etterlatte.common.ConnectionAutoclosing
import no.nav.etterlatte.libs.common.Enhetsnummer
import no.nav.etterlatte.libs.common.Vedtaksloesning
import no.nav.etterlatte.libs.common.behandling.AarsakTilAvbrytelse
import no.nav.etterlatte.libs.common.behandling.BehandlingStatus
import no.nav.etterlatte.libs.common.behandling.BehandlingType
import no.nav.etterlatte.libs.common.behandling.BoddEllerArbeidetUtlandet
Expand All @@ -24,6 +25,7 @@ import no.nav.etterlatte.libs.common.behandling.Revurderingaarsak
import no.nav.etterlatte.libs.common.behandling.TidligereFamiliepleier
import no.nav.etterlatte.libs.common.behandling.Utlandstilknytning
import no.nav.etterlatte.libs.common.behandling.Virkningstidspunkt
import no.nav.etterlatte.libs.common.feilhaandtering.checkInternFeil
import no.nav.etterlatte.libs.common.grunnlag.Grunnlagsopplysning
import no.nav.etterlatte.libs.common.gyldigSoeknad.GyldighetsResultat
import no.nav.etterlatte.libs.common.sak.BehandlingOgSak
Expand Down Expand Up @@ -261,7 +263,9 @@ class BehandlingDao(
stmt.setString(18, opphoerFraOgMed?.let { fom -> objectMapper.writeValueAsString(fom) })
stmt.setJsonb(19, tidligereFamiliepleier)
}
require(stmt.executeUpdate() == 1)
checkInternFeil(stmt.executeUpdate() == 1) {
"Kunne ikke opprette behandling for ${behandling.id}"
}
}
}

Expand All @@ -281,7 +285,9 @@ class BehandlingDao(
stmt.setObject(1, objectMapper.writeValueAsString(gyldighetsproeving))
stmt.setTidspunkt(2, Tidspunkt.now().toLocalDatetimeUTC().toTidspunkt())
stmt.setObject(3, behandlingId)
require(stmt.executeUpdate() == 1)
checkInternFeil(stmt.executeUpdate() == 1) {
"Kunne ikke lagreGyldighetsproeving behandling for $behandlingId"
}
}
}

Expand All @@ -300,7 +306,26 @@ class BehandlingDao(
stmt.setString(1, status.name)
stmt.setTidspunkt(2, sistEndret.toTidspunkt())
stmt.setObject(3, behandlingId)
require(stmt.executeUpdate() == 1)
checkInternFeil(stmt.executeUpdate() == 1) {
"Kunne ikke lagreStatus behandling for $behandlingId"
}
}
}

fun lagreAvbruttAarsak(
behandlingId: UUID,
aarsakTilAvbrytelse: AarsakTilAvbrytelse,
kommentar: String,
) = connectionAutoclosing.hentConnection {
with(it) {
val stmt = prepareStatement("UPDATE behandling SET aarsak_til_avbrytelse = ?, kommentar_til_avbrytelse = ? WHERE id = ?")

stmt.setString(1, aarsakTilAvbrytelse.name)
stmt.setString(2, kommentar)
stmt.setObject(3, behandlingId)
checkInternFeil(stmt.executeUpdate() == 1) {
"Kunne ikke lagreStatus behandling for $behandlingId"
}
}
}

Expand All @@ -313,7 +338,9 @@ class BehandlingDao(

stmt.setString(1, objectMapper.writeValueAsString(boddEllerArbeidetUtlandet))
stmt.setObject(2, behandlingId)
require(stmt.executeUpdate() == 1)
checkInternFeil(stmt.executeUpdate() == 1) {
"Kunne ikke lagreBoddEllerArbeidetUtlandet behandling for $behandlingId"
}
}
}

Expand All @@ -325,7 +352,9 @@ class BehandlingDao(
val statement = prepareStatement("UPDATE behandling set utlandstilknytning = ? where id = ?")
statement.setJsonb(1, utlandstilknytning)
statement.setObject(2, behandlingId)
require(statement.executeUpdate() == 1)
checkInternFeil(statement.executeUpdate() == 1) {
"Kunne ikke lagreUtlandstilknytning behandling for $behandlingId"
}
}
}

Expand All @@ -337,7 +366,9 @@ class BehandlingDao(
val statement = prepareStatement("UPDATE behandling set tidligere_familiepleier = ? where id = ?")
statement.setJsonb(1, tidligereFamiliepleier)
statement.setObject(2, behandlingId)
require(statement.executeUpdate() == 1)
checkInternFeil(statement.executeUpdate() == 1) {
"Kunne ikke lagreTidligereFamiliepleier behandling for $behandlingId"
}
}
}

Expand Down Expand Up @@ -446,7 +477,9 @@ class BehandlingDao(
val statement = prepareStatement("UPDATE behandling set sende_brev = ? where id = ?")
statement.setBoolean(1, skalSendeBrev)
statement.setObject(2, behandlingId)
require(statement.executeUpdate() == 1)
checkInternFeil(statement.executeUpdate() == 1) {
"Kunne ikke send brev behandling for $behandlingId"
}
}
}

Expand All @@ -461,13 +494,22 @@ class BehandlingDao(

private fun ResultSet.behandlingAvRettType() = tilBehandling(getString("behandlingstype"))

fun avbrytBehandling(behandlingId: UUID) =
fun avbrytBehandling(
behandlingId: UUID,
aarsakTilAvbrytelse: AarsakTilAvbrytelse?,
kommentar: String?,
) {
this.lagreStatus(
behandlingId = behandlingId,
status = BehandlingStatus.AVBRUTT,
sistEndret = Tidspunkt.now().toLocalDatetimeUTC(),
)

if (aarsakTilAvbrytelse != null) {
this.lagreAvbruttAarsak(behandlingId, aarsakTilAvbrytelse, kommentar ?: "")
}
}

fun lagreNyttVirkningstidspunkt(
behandlingId: UUID,
virkningstidspunkt: Virkningstidspunkt,
Expand Down Expand Up @@ -503,4 +545,5 @@ private fun ResultSet.toTidligereFamiliepleier(): TidligereFamiliepleier? =
val objectMapper: ObjectMapper =
jacksonObjectMapper().registerModule(JavaTimeModule()).disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)

// TODO: fjerne denne bruke, blir veldig dårlig feilmelding
fun PreparedStatement.updateSuccessful() = require(this.executeUpdate() == 1)
Loading

0 comments on commit 574d392

Please sign in to comment.