diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt new file mode 100644 index 000000000..ab098d884 --- /dev/null +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/aktorIdCache/AktorIdCacheRepository.kt @@ -0,0 +1,9 @@ +package no.nav.fo.veilarbregistrering.aktorIdCache + +import no.nav.fo.veilarbregistrering.bruker.Foedselsnummer + +interface AktorIdCacheRepository { + + fun lagre(aktorIdCache: AktorIdCache) + fun hentAktørId(fnr: Foedselsnummer): AktorIdCache? +} \ No newline at end of file diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/db/RepositoryConfig.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/db/RepositoryConfig.kt index e2e19229c..5d1242df6 100644 --- a/src/main/kotlin/no/nav/fo/veilarbregistrering/db/RepositoryConfig.kt +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/db/RepositoryConfig.kt @@ -1,7 +1,9 @@ package no.nav.fo.veilarbregistrering.db +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheRepository import no.nav.fo.veilarbregistrering.arbeidssoker.formidlingsgruppe.FormidlingsgruppeRepository import no.nav.fo.veilarbregistrering.arbeidssoker.meldekort.MeldekortRepository +import no.nav.fo.veilarbregistrering.db.aktorIdCache.AktorIdCacheRepositoryImpl import no.nav.fo.veilarbregistrering.db.arbeidssoker.FormidlingsgruppeRepositoryImpl import no.nav.fo.veilarbregistrering.db.arbeidssoker.MeldekortRepositoryImpl import no.nav.fo.veilarbregistrering.db.migrering.konsument.MigrateRepositoryImpl @@ -77,4 +79,9 @@ class RepositoryConfig { fun migrateRepository(db: NamedParameterJdbcTemplate): MigrateRepository { return MigrateRepositoryImpl(db) } + + @Bean + fun aktorIdCacheRepository(db: NamedParameterJdbcTemplate): AktorIdCacheRepository { + return AktorIdCacheRepositoryImpl(db) + } } diff --git a/src/main/kotlin/no/nav/fo/veilarbregistrering/db/aktorIdCache/AktorIdCacheRepositoryImpl.kt b/src/main/kotlin/no/nav/fo/veilarbregistrering/db/aktorIdCache/AktorIdCacheRepositoryImpl.kt index ef6b9ce34..8aae7ab87 100644 --- a/src/main/kotlin/no/nav/fo/veilarbregistrering/db/aktorIdCache/AktorIdCacheRepositoryImpl.kt +++ b/src/main/kotlin/no/nav/fo/veilarbregistrering/db/aktorIdCache/AktorIdCacheRepositoryImpl.kt @@ -1,15 +1,16 @@ package no.nav.fo.veilarbregistrering.db.aktorIdCache import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCache +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheRepository import no.nav.fo.veilarbregistrering.bruker.Foedselsnummer import no.nav.fo.veilarbregistrering.log.logger import org.springframework.dao.DataIntegrityViolationException import org.springframework.jdbc.core.RowMapper import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate -class AktorIdCacheRepositoryImpl(private val db: NamedParameterJdbcTemplate) { +class AktorIdCacheRepositoryImpl(private val db: NamedParameterJdbcTemplate): AktorIdCacheRepository { - fun lagre(aktorIdCache: AktorIdCache){ + override fun lagre(aktorIdCache: AktorIdCache) { val params = mapOf( "foedselsnummer" to aktorIdCache.foedselsnummer, "aktor_id" to aktorIdCache.aktorId, @@ -24,7 +25,7 @@ class AktorIdCacheRepositoryImpl(private val db: NamedParameterJdbcTemplate) { } } - fun hentAktørId(fnr: Foedselsnummer): AktorIdCache? { + override fun hentAktørId(fnr: Foedselsnummer): AktorIdCache? { val sql = "SELECT * FROM aktor_id_cache WHERE foedselsnummer = :fnr" val params = mapOf("fnr" to fnr.foedselsnummer) return db.queryForObject(sql, params, aktorIdCacheRowMapper) diff --git a/src/test/kotlin/no/nav/fo/veilarbregistrering/db/GcpAktorIdCacheRepositoryDbIntegrationTest.kt b/src/test/kotlin/no/nav/fo/veilarbregistrering/db/GcpAktorIdCacheRepositoryDbIntegrationTest.kt new file mode 100644 index 000000000..689dc27c0 --- /dev/null +++ b/src/test/kotlin/no/nav/fo/veilarbregistrering/db/GcpAktorIdCacheRepositoryDbIntegrationTest.kt @@ -0,0 +1,38 @@ +package no.nav.fo.veilarbregistrering.db + +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCache +import no.nav.fo.veilarbregistrering.aktorIdCache.AktorIdCacheRepository +import no.nav.fo.veilarbregistrering.bruker.AktorId +import no.nav.fo.veilarbregistrering.bruker.Foedselsnummer +import no.nav.veilarbregistrering.integrasjonstest.db.DbContainerInitializer +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase +import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest +import org.springframework.test.context.ActiveProfiles +import org.springframework.test.context.ContextConfiguration +import java.time.LocalDateTime +import kotlin.test.assertEquals +import kotlin.test.assertNotNull + +@JdbcTest +@AutoConfigureTestDatabase(replace= AutoConfigureTestDatabase.Replace.NONE) +@ContextConfiguration(initializers = [DbContainerInitializer::class], classes = [ RepositoryConfig::class, DatabaseConfig::class ]) +@ActiveProfiles("gcp") +class GcpAktorIdCacheRepositoryDbIntegrationTest( + @Autowired + private val aktorIdCacheRepository: AktorIdCacheRepository +) { + + @Test + fun `skal hente aktørId basert på fødselsnummer`() { + val FOEDSELSNUMMER = Foedselsnummer("01234567890") + val AKTORID = AktorId("1000010000100") + + aktorIdCacheRepository.lagre(AktorIdCache(FOEDSELSNUMMER.foedselsnummer, AKTORID.aktorId, LocalDateTime.now())) + + val aktorIdCache = aktorIdCacheRepository.hentAktørId(FOEDSELSNUMMER) + assertNotNull(aktorIdCache) + assertEquals(AKTORID.aktorId, aktorIdCache.aktorId) + } +} \ No newline at end of file