Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/npid avdod #457

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,11 @@ import no.nav.eessi.pensjon.fagmodul.eux.BucUtils
import no.nav.eessi.pensjon.fagmodul.eux.EuxInnhentingService
import no.nav.eessi.pensjon.logging.AuditLogger
import no.nav.eessi.pensjon.metrics.MetricsHelper
import no.nav.eessi.pensjon.pensjonsinformasjon.clients.PensjonsinformasjonClient
import no.nav.eessi.pensjon.personoppslag.pdl.PersonService
import no.nav.eessi.pensjon.personoppslag.pdl.PersonoppslagException
import no.nav.eessi.pensjon.personoppslag.pdl.model.AktoerId
import no.nav.eessi.pensjon.personoppslag.pdl.model.Familierelasjonsrolle
import no.nav.eessi.pensjon.personoppslag.pdl.model.NorskIdent
import no.nav.eessi.pensjon.personoppslag.pdl.model.Person
import no.nav.eessi.pensjon.personoppslag.pdl.model.*
import no.nav.eessi.pensjon.services.pensjonsinformasjon.PensjonsinformasjonService
import no.nav.eessi.pensjon.shared.person.Fodselsnummer
import no.nav.eessi.pensjon.utils.toJson
import no.nav.eessi.pensjon.utils.toJsonSkipEmpty
import no.nav.security.token.support.core.api.Protected
Expand Down Expand Up @@ -117,7 +114,8 @@ class PersonPDLController(
): PersoninformasjonAvdode {

logger.debug("Henter avdød person")
val avdode = pdlService.hentPerson(NorskIdent(avdodFnr))
val ident = if (Fodselsnummer.fra(avdodFnr)?.erNpid == true) Npid(avdodFnr) else NorskIdent(avdodFnr)
val avdode = pdlService.hentPerson(ident)
val avdodNavn = avdode?.navn

val relasjon = avdodRolle ?: gjenlevende?.sivilstand?.firstOrNull { it.relatertVedSivilstand == avdodFnr }?.type
Expand Down Expand Up @@ -205,8 +203,9 @@ class PersonPDLController(
}

private fun hentDoedsdatoFraPDL(avdodIdent: String?): String {
if (avdodIdent == null || avdodIdent.isEmpty()) return emptyList<String>().toJson()
val avdodperson = pdlService.hentPerson(NorskIdent(avdodIdent))
val ident = if (avdodIdent!= null && Fodselsnummer.fra(avdodIdent)?.erNpid == true) Npid(avdodIdent) else avdodIdent?.let { NorskIdent(it) }
if (avdodIdent.isNullOrEmpty()) return emptyList<String>().toJson()
val avdodperson = pdlService.hentPerson(ident!!)
val avdoddato = avdodperson?.doedsfall?.doedsdato
//returner litt metadata
val result = listOf(mapOf("doedsdato" to avdoddato?.toString(), "sammensattNavn" to avdodperson?.navn?.sammensattNavn, "ident" to avdodIdent)).toJson()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import no.nav.eessi.pensjon.fagmodul.prefill.klient.PrefillKlient
import no.nav.eessi.pensjon.metrics.MetricsHelper
import no.nav.eessi.pensjon.personoppslag.pdl.PersonService
import no.nav.eessi.pensjon.personoppslag.pdl.model.*
import no.nav.eessi.pensjon.personoppslag.pdl.model.IdentGruppe.*
import no.nav.eessi.pensjon.services.pensjonsinformasjon.PensjonsinformasjonService
import no.nav.eessi.pensjon.shared.api.ApiRequest
import no.nav.eessi.pensjon.shared.person.Fodselsnummer
Expand Down Expand Up @@ -42,62 +43,46 @@ class InnhentingService(
)
}

private fun hentFnrfraAktoerIdfraPDL(aktoerid: String?): String? {
if (aktoerid.isNullOrBlank()) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Fant ingen aktoerident")
}
return personService.hentIdent(IdentGruppe.FOLKEREGISTERIDENT, AktoerId(aktoerid))?.id
}


//TODO hentFnrEllerNpidForAktoerIdfraPDL burde ikke tillate null eller tom AktoerId
private fun hentFnrEllerNpidForAktoerIdfraPDL(aktoerid: String): Ident? {
if (aktoerid.isBlank()) throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Fant ingen aktoerident")

val fnr = personService.hentIdent(IdentGruppe.FOLKEREGISTERIDENT, AktoerId(aktoerid))
if(fnr?.id?.isNotEmpty() == true){
return fnr.also { logger.info("Returnerer FNR for aktoerId: $aktoerid") }
}
val npid = personService.hentIdent(IdentGruppe.NPID, AktoerId(aktoerid))
if(npid?.id?.isNotEmpty() == true){
return npid.also { logger.info("Returnerer NPID for aktoerId: $aktoerid") }
}
val fnr = personService.hentIdent(FOLKEREGISTERIDENT, AktoerId(aktoerid))
if(fnr?.id?.isNotEmpty() == true) return fnr.also { logger.info("Returnerer FNR for aktoerId: $aktoerid") }

val npid = personService.hentIdent(NPID, AktoerId(aktoerid))
if(npid?.id?.isNotEmpty() == true) return npid.also { logger.info("Returnerer NPID for aktoerId: $aktoerid") }
return null
}

//Hjelpe funksjon for å validere og hente aktoerid for evt. avdodfnr fra UI (P2100) - PDL
fun getAvdodId(bucType: BucType, avdodIdent: String?): String? {
if (avdodIdent?.isBlank() == true) throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Ident har tom input-verdi")

val fnrEllerNpid = Fodselsnummer.fra(avdodIdent)
val ident = if (fnrEllerNpid?.erNpid != true) avdodIdent?.let { NorskIdent(it) }
else avdodIdent?.let { Npid(it) }

return when (bucType) {
P_BUC_02 -> {
if (avdodIdent == null) {
logger.warn("Mangler fnr for avdød")
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Mangler fnr for avdød")
}
if (avdodIdent.isBlank()) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Ident har tom input-verdi")
}
personService.hentIdent(IdentGruppe.AKTORID, NorskIdent(avdodIdent))?.id
personService.hentIdent(AKTORID, ident!!)?.id
}

P_BUC_05, P_BUC_06, P_BUC_10 -> {
if (avdodIdent == null) {
return null
}
if (avdodIdent.isBlank()) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Ident har tom input-verdi")
}

val gyldigNorskIdent = Fodselsnummer.fra(avdodIdent)
if (avdodIdent == null) return null
return try {
personService.hentIdent(IdentGruppe.AKTORID, NorskIdent(avdodIdent))?.id
personService.hentIdent(AKTORID, ident!!)?.id
} catch (ex: Exception) {
if (gyldigNorskIdent == null) logger.error("NorskIdent er ikke gyldig")
throw ResponseStatusException(HttpStatus.NOT_FOUND, "Korrekt aktoerIdent ikke funnet")
}
}

else -> null
}

}

fun hentFnrfraAktoerService(aktoerid: String?): Ident? = aktoerid?.let { hentFnrEllerNpidForAktoerIdfraPDL(it) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,6 @@ class PensjonsinformasjonService(private val pensjonsinformasjonClient: Pensjons
}
}

/* @Suppress("DEPRECATION")
fun hentAltPaaVedtak(vedtaksId: String): Pensjonsinformasjon {
return pensjonsinformasjonClient.hentAltPaaVedtak(vedtaksId).also {
logger.debug("gjenlevende : ${it.toJsonSkipEmpty()}")
}
}*/
@Suppress("DEPRECATION")
fun hentAltPaaAktoerId(ident: String): Pensjonsinformasjon {
return pensjonsinformasjonClient.hentAltPaaAktoerId(ident)
Expand Down
Loading