Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Commit

Permalink
F!! Opprydding i nye repository-metoder
Browse files Browse the repository at this point in the history
  • Loading branch information
Jørgen Tu Sveli committed Sep 1, 2021
1 parent 63e7eda commit 9feab3e
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,33 +39,54 @@ class ProfileringRepositoryImpl(private val db: NamedParameterJdbcTemplate) : Pr
" FETCH NEXT 3 ROWS ONLY",
mapOf("id" to brukerregistreringId), mapper)!!

override fun hentProfileringerForIder(brukerregistreringIder: List<Long>): List<Profilering> =
db.query(
"SELECT * FROM $BRUKER_PROFILERING WHERE $BRUKER_REGISTRERING_ID in (:id) order by $BRUKER_REGISTRERING_ID asc",
mapOf("id" to brukerregistreringIder), manyMapper)!!


companion object {
private const val BRUKER_REGISTRERING_ID = "BRUKER_REGISTRERING_ID"
private const val BRUKER_PROFILERING = "BRUKER_PROFILERING"
const val PROFILERING_TYPE = "PROFILERING_TYPE"

const val VERDI = "VERDI"
const val ALDER = "ALDER"
const val ARB_6_AV_SISTE_12_MND = "ARB_6_AV_SISTE_12_MND"
const val RESULTAT_PROFILERING = "RESULTAT_PROFILERING"

private val manyMapper: (ResultSet) -> List<Profilering> = { rs: ResultSet ->
val result = mutableMapOf<Int, Profilering>()

while (rs.next()) {
val profilering = result.getOrPut(rs.getInt(BRUKER_REGISTRERING_ID)) { Profilering() }

lesRadTilProfilering(profilering, rs)
}
result.values.toList()
}

private val mapper: (ResultSet) -> Profilering = { rs ->
try {
Profilering().also {
while (rs.next()) {
when (rs.getString(PROFILERING_TYPE)) {
ALDER -> it.alder = rs.getInt(VERDI)

ARB_6_AV_SISTE_12_MND -> it.isJobbetSammenhengendeSeksAvTolvSisteManeder =
rs.getBoolean(VERDI)

RESULTAT_PROFILERING -> it.innsatsgruppe = Innsatsgruppe.of(rs.getString(VERDI))
}
lesRadTilProfilering(it, rs)
}
}
} catch (e: SQLException) {
throw RuntimeException(e)
}
}

private fun lesRadTilProfilering(it: Profilering, rs: ResultSet) {
when (rs.getString(PROFILERING_TYPE)) {
ALDER -> it.alder = rs.getInt(VERDI)

ARB_6_AV_SISTE_12_MND -> it.isJobbetSammenhengendeSeksAvTolvSisteManeder =
rs.getBoolean(VERDI)

RESULTAT_PROFILERING -> it.innsatsgruppe = Innsatsgruppe.of(rs.getString(VERDI))
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ class BrukerRegistreringRepositoryImpl(private val db: NamedParameterJdbcTemplat
return db.queryForObject(sql, mapOf("id" to brukerregistreringId), registreringMapper)!!
}

override fun hentBrukerregistreringerForIder(brukerregistreringIder: List<Long>): List<OrdinaerBrukerRegistrering> {
val sql = "SELECT * FROM $BRUKER_REGISTRERING WHERE $BRUKER_REGISTRERING_ID in :ider"
override fun hentBrukerregistreringerForIder(brukerRegistreringIder: List<Long>): List<OrdinaerBrukerRegistrering> {
val sql = "SELECT * FROM $BRUKER_REGISTRERING WHERE $BRUKER_REGISTRERING_ID in (:ider)"

return db.query(sql, mapOf("ider" to brukerregistreringIder), registreringMapper)!!
return db.query(sql, mapOf("ider" to brukerRegistreringIder), registreringMapper)
}

override fun finnOrdinaerBrukerregistreringForAktorIdOgTilstand(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import no.nav.fo.veilarbregistrering.registrering.formidling.Status
import org.springframework.jdbc.core.RowMapper
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
import java.sql.Timestamp
import java.time.LocalDateTime

class RegistreringTilstandRepositoryImpl(private val db: NamedParameterJdbcTemplate) : RegistreringTilstandRepository {

Expand Down Expand Up @@ -81,10 +82,10 @@ class RegistreringTilstandRepositoryImpl(private val db: NamedParameterJdbcTempl
return db.query(sql, params, rowMapper()).firstOrNull()
}

override fun finnXNesteRegistreringTilstanderMed(x: Int, status: Status): List<RegistreringTilstand> {
override fun finnFlereRegistreringTilstanderMed(antall: Int, status: Status): List<RegistreringTilstand> {
val params = mapOf(
"status" to status.name,
"x" to x
"x" to antall
)

val sql = "SELECT * FROM $REGISTRERING_TILSTAND" +
Expand Down Expand Up @@ -126,12 +127,22 @@ class RegistreringTilstandRepositoryImpl(private val db: NamedParameterJdbcTempl
}

override fun oppdaterFlereTilstander(nyStatus: Status, registreringTilstandIder: List<Long>) {
val params = mapOf(
"ny_status" to nyStatus,
"sist_endret" to Timestamp.valueOf(LocalDateTime.now())
)

val sql = """
UPDATE $REGISTRERING_TILSTAND SET
$STATUS = $nyStatus,
$STATUS = :ny_status,
$SIST_ENDRET = :sist_endret
WHERE $ID in (${registreringTilstandIder.joinToString(",")})
""".trimIndent()

db.update(
sql,
params
)
}

private fun nesteFraSekvens(): Long {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ package no.nav.fo.veilarbregistrering.profilering
interface ProfileringRepository {
fun lagreProfilering(brukerregistreringId: Long, profilering: Profilering)
fun hentProfileringForId(brukerregistreringId: Long): Profilering
fun hentProfileringerForIder(brukerregistreringIder: List<Long>): List<Profilering>
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ interface RegistreringTilstandRepository {
fun hentRegistreringTilstand(id: Long): RegistreringTilstand
fun finnRegistreringTilstanderMed(status: Status): List<RegistreringTilstand>
fun finnNesteRegistreringTilstandMed(status: Status): RegistreringTilstand?
fun finnXNesteRegistreringTilstanderMed(x: Int, status: Status): List<RegistreringTilstand>
fun finnFlereRegistreringTilstanderMed(antall: Int, status: Status): List<RegistreringTilstand>
fun hentAntallPerStatus(): Map<Status, Int>
fun hentTilstandFor(registreringsId: Long): RegistreringTilstand
fun oppdaterFlereTilstander(publisertKafka: Status, map: List<Long>)
fun oppdaterFlereTilstander(nyStatus: Status, registreringTilstandIder: List<Long>)
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,10 @@ class PubliseringAvEventsService(

/*@Transactional
fun publiserEventsForFlereRegistreringer() {
val nesteRegistreringer = registreringTilstandRepository
val nesteRegTilstander = registreringTilstandRepository
.finnXNesteRegistreringTilstanderMed(0, Status.OVERFORT_ARENA)
.associateBy { brukerRegistreringRepository.hentBrukerTilknyttet(it.brukerRegistreringId).aktorId }
val nesteReg = brukerRegistreringRepository.hentBrukerregistreringerForIder(nesteRegTilstander.map{ it.brukerRegistreringId })
val nesteProfileringer = nesteRegistreringer
.map { (aktorId, regTilstand) -> aktorId to profileringRepository.hentProfileringForId(regTilstand.brukerRegistreringId) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,17 @@ class ProfileringRepositoryDbIntegrationTest(
val profileringFraDb = profileringRepository.hentProfileringForId(9)
assertThat(profileringFraDb.toString()).isEqualTo(profilering.toString())
}

@Test
fun `profiler bruker og hent som liste`() {
val profilering = Profilering()
.setAlder(39)
.setJobbetSammenhengendeSeksAvTolvSisteManeder(true)
.setInnsatsgruppe(Innsatsgruppe.BEHOV_FOR_ARBEIDSEVNEVURDERING)
profileringRepository.lagreProfilering(9, profilering)

val profileringFraDb = profileringRepository.hentProfileringerForIder(listOf(9))
assertThat(profileringFraDb.size).isEqualTo(1)
assertThat(profileringFraDb[0].toString()).isEqualTo(profilering.toString())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,22 @@ class BrukerRegistreringRepositoryDbIntegrationTest(
assertThat(ordinaerBrukerregistreringer).isEmpty()
}

@Test
fun `finnOrdinaer`() {
val registrering1 = OrdinaerBrukerRegistreringTestdataBuilder.gyldigBrukerRegistrering().setBesvarelse(BesvarelseTestdataBuilder.gyldigBesvarelse()
.setAndreForhold(AndreForholdSvar.JA))
val lagretRegistrering1 = brukerRegistreringRepository.lagre(registrering1, BRUKER_1)
registreringTilstandRepository.lagre(registreringTilstand().brukerRegistreringId(lagretRegistrering1.id).status(Status.OVERFORT_ARENA).build())

val registrering2 = OrdinaerBrukerRegistreringTestdataBuilder.gyldigBrukerRegistrering().setBesvarelse(BesvarelseTestdataBuilder.gyldigBesvarelse()
.setAndreForhold(AndreForholdSvar.NEI))
val lagretRegistrering2 = brukerRegistreringRepository.lagre(registrering2, BRUKER_1)
registreringTilstandRepository.lagre(registreringTilstand().brukerRegistreringId(lagretRegistrering2.id).status(Status.OVERFORT_ARENA).build())

val ordinaerBrukerregistreringer = brukerRegistreringRepository.hentBrukerregistreringerForIder(listOf(lagretRegistrering1.id, lagretRegistrering2.id))
assertThat(ordinaerBrukerregistreringer).hasSize(2)
}

companion object {
private val FOEDSELSNUMMER = Foedselsnummer.of("12345678911")
private val AKTOR_ID_11111 = AktorId.of("11111")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ class RegistreringTilstandRepositoryDbIntegrationTest(
.status(OVERFORT_ARENA)
.build()
val eldsteRegistreringTilstandId = registreringTilstandRepository.lagre(eldsteRegistreringTilstand)
val nesteRegistreringerKlareForPublisering = registreringTilstandRepository.finnXNesteRegistreringTilstanderMed(2, OVERFORT_ARENA)
val nesteRegistreringerKlareForPublisering = registreringTilstandRepository.finnFlereRegistreringTilstanderMed(2, OVERFORT_ARENA)
assertThat(nesteRegistreringerKlareForPublisering.size).isEqualTo(2)
assertThat(nesteRegistreringerKlareForPublisering.map(RegistreringTilstand::getId)
.containsAll(listOf(eldsteRegistreringTilstandId, nyesteRegistreringTilstand.id)))
Expand All @@ -154,7 +154,7 @@ class RegistreringTilstandRepositoryDbIntegrationTest(
.build()
registreringTilstandRepository.lagre(nyesteRegistreringTilstand)

val nesteRegistreringerKlareForPublisering = registreringTilstandRepository.finnXNesteRegistreringTilstanderMed(2, OVERFORT_ARENA)
val nesteRegistreringerKlareForPublisering = registreringTilstandRepository.finnFlereRegistreringTilstanderMed(2, OVERFORT_ARENA)
assertThat(nesteRegistreringerKlareForPublisering.size).isEqualTo(0)
}

Expand Down

0 comments on commit 9feab3e

Please sign in to comment.