Skip to content

Commit cf4988b

Browse files
committed
filtrer vekk tvilsomme fnr i et filter
1 parent edbac7a commit cf4988b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/main/kotlin/no/nav/tilgangsmaskin/populasjonstilgangskontroll/integrasjoner/nom/NomHendelseKonsument.kt

+11-6
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,35 @@ import io.micrometer.core.annotation.Counted
55
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.domain.AnsattId
66
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.domain.BrukerId
77
import no.nav.tilgangsmaskin.populasjonstilgangskontroll.utils.ObjectUtil.mask
8+
import org.apache.kafka.clients.consumer.ConsumerRecord
89
import org.slf4j.LoggerFactory.getLogger
910
import org.springframework.kafka.annotation.KafkaListener
11+
import org.springframework.kafka.listener.adapter.RecordFilterStrategy
1012
import org.springframework.stereotype.Component
1113

1214
@Component
1315
class NomHendelseKonsument(private val nom: NomOperasjoner, private val handler: EventResultHandler) {
1416

1517
private val log = getLogger(NomHendelseKonsument::class.java)
16-
@KafkaListener(topics = ["#{'\${nom.topic}'}"])
18+
@KafkaListener(topics = ["#{'\${nom.topic}'}"], filter = "fnrFilterStrategy")
1719
fun listen(hendelse : NomHendelse) {
1820
with(hendelse) {
1921
log.info("Mottatt hendelse: {}", this)
2022
runCatching {
21-
validate(navident, personident).also {
22-
nom.lagre(it.first, it.second, startdato,sluttdato)
23-
}
23+
nom.lagre(AnsattId(navident), BrukerId(personident), startdato, sluttdato)
2424
}.onFailure {
2525
handler.handleFailure(navident,personident,it)
2626
}.onSuccess {
2727
handler.handleOK(navident, personident)
2828
}
2929
}
3030
}
31-
private fun validate(ansattId: String, brukerId: String) = Pair(AnsattId(ansattId),BrukerId(brukerId))
31+
}
32+
33+
@Component
34+
class FnrFilterStrategy: RecordFilterStrategy<String, NomHendelse> {
35+
private val ikke11Tall = Regex("(?!\\d{11})")
36+
override fun filter(record: ConsumerRecord<String, NomHendelse>) = record.value().personident.matches(ikke11Tall)
3237
}
3338

3439
@Component
@@ -39,6 +44,6 @@ class EventResultHandler {
3944
log.info("Lagret fødselsnummer ${brukerId.mask()} for $ansattId OK")
4045
}
4146
fun handleFailure(ansattId: String, brukerId: String, e: Throwable) {
42-
log.error("Kunne ikke lagre fødselsnummer $brukerId for $ansattId (${e.message})", e)
47+
log.error("Kunne ikke lagre fødselsnummer ${brukerId.mask()} for $ansattId (${e.message})", e)
4348
}
4449
}

0 commit comments

Comments
 (0)