Skip to content

Commit

Permalink
Resttjeneste for aktørbytte
Browse files Browse the repository at this point in the history
  • Loading branch information
espenjv committed Aug 16, 2024
1 parent b7879b2 commit c9c5e40
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package no.nav.sifinnsynapi.forvaltning

import no.nav.security.token.support.core.api.ProtectedWithClaims
import no.nav.security.token.support.core.api.RequiredIssuers
import no.nav.sifinnsynapi.common.AktørId
import no.nav.sifinnsynapi.config.Issuers
import no.nav.sifinnsynapi.soknad.SøknadService
import org.springframework.http.MediaType
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RestController

@RestController
@RequiredIssuers(
ProtectedWithClaims(issuer = Issuers.TOKEN_X, claimMap = ["acr=Level4"])
)
class AktørBytteController(
private valknadService: SøknadService
) {

@PostMapping("forvaltning/oppdaterAktoerId",
produces = [MediaType.APPLICATION_JSON_VALUE])
fun oppdaterAktoerId(@RequestBody aktørBytteRequest: AktørBytteRequest): ResponseEntity<AktørBytteRespons> {
val antallOppdaterte = søknadService.oppdaterAktørId(
AktørId(aktørBytteRequest.gyldigAktør),
AktørId(aktørBytteRequest.utgåttAktør)
)
return ResponseEntity.ok(AktørBytteRespons(antallOppdaterte))
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package no.nav.sifinnsynapi.forvaltning

import com.fasterxml.jackson.annotation.JsonProperty
import jakarta.validation.constraints.Pattern
import jakarta.validation.constraints.Size
import org.jetbrains.annotations.NotNull

data class AktørBytteRequest(
@JsonProperty
@NotNull
@Size(max = 20)
@Pattern(regexp = "^\\d+$", message = "AktørId [\${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
val utgåttAktør: String,
@JsonProperty
@NotNull
@Size(max = 20)
@Pattern(regexp = "^\\d+$", message = "AktørId [\${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
val gyldigAktør: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package no.nav.sifinnsynapi.forvaltning

import com.fasterxml.jackson.annotation.JsonProperty
import jakarta.validation.constraints.Pattern
import jakarta.validation.constraints.Size
import org.jetbrains.annotations.NotNull

data class AktørBytteRespons(
@JsonProperty
@NotNull
val antallOppdaterteRader: Int,

)
2 changes: 1 addition & 1 deletion src/main/kotlin/no/nav/sifinnsynapi/soknad/SøknadDAO.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import java.util.*
@Entity(name = "søknad")
data class SøknadDAO(
@Column(name = "id") @Id @JdbcTypeCode(SqlTypes.UUID) val id: UUID = UUID.randomUUID(),
@Column(name = "aktør_id") @Embedded val aktørId: AktørId,
@Column(name = "aktør_id") @Embedded internal val aktørId: AktørId,
@Column(name = "fødselsnummer") @Embedded valdselsnummer: Fødselsnummer,
@Column(name = "søknadstype") @Enumerated(STRING) valknadstype: Søknadstype,
@Column(name = "status") @Enumerated(STRING) val status: SøknadsStatus,
Expand Down
13 changes: 11 additions & 2 deletions src/main/kotlin/no/nav/sifinnsynapi/soknad/SøknadService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package no.nav.sifinnsynapi.soknad
import com.fasterxml.jackson.core.type.TypeReference
import com.fasterxml.jackson.databind.ObjectMapper
import no.nav.sifinnsynapi.common.AktørId
import no.nav.sifinnsynapi.common.Fødselsnummer
import no.nav.sifinnsynapi.common.Søknadstype
import no.nav.sifinnsynapi.dokument.DokumentDTO
import no.nav.sifinnsynapi.dokument.DokumentService
Expand Down Expand Up @@ -53,8 +54,9 @@ class SøknadService(

return søknadDAOs
.map { søknadDAO ->
val relevanteDokumenter = dokumentOversikt.filter { it.journalpostId == søknadDAO.journalpostId }
søknadDAO.tilSøknadDTO(relevanteDokumenter) }
val relevanteDokumenter = dokumentOversikt.filter { it.journalpostId == søknadDAO.journalpostId }
søknadDAO.tilSøknadDTO(relevanteDokumenter)
}
}

fun hentSøknad(søknadId: UUID): SøknadDTO {
Expand Down Expand Up @@ -121,6 +123,13 @@ class SøknadService(
fun finnUnikeSøknaderUtenMikrofrontendSisteSeksMåneder(søknadstype: Søknadstype, limit: Int): List<SøknadDAO> {
return repo.finnUnikeSøknaderUtenMikrofrontendSisteSeksMåneder(søknadstype.name, limit)
}

fun oppdaterAktørId(gyldigAktørId: AktørId, utgåttAktørId: AktørId): Int {
val søknader = repo.findAllByAktørId(utgåttAktørId);
søknader.map { it.copy( aktørId = gyldigAktørId ) }
.forEach { repo.save(it) }
return søknader.size;
}
}

class SøknadNotFoundException(søknadId: String) :
Expand Down

0 comments on commit c9c5e40

Please sign in to comment.