Skip to content

Commit 6a2d39b

Browse files
IS-2892: Get OoppfolgingstilfelleVirksomhet for search result persons (#520)
1 parent 212dd9e commit 6a2d39b

File tree

4 files changed

+61
-21
lines changed

4 files changed

+61
-21
lines changed

src/main/kotlin/no/nav/syfo/personstatus/infrastructure/database/repository/PersonOversiktStatusRepository.kt

+9-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import no.nav.syfo.personstatus.application.IPersonOversiktStatusRepository
66
import no.nav.syfo.personstatus.domain.*
77
import no.nav.syfo.personstatus.infrastructure.database.DatabaseInterface
88
import no.nav.syfo.personstatus.infrastructure.database.queries.createPersonOversiktStatus
9+
import no.nav.syfo.personstatus.infrastructure.database.queries.getPersonOppfolgingstilfelleVirksomhetMap
910
import no.nav.syfo.personstatus.infrastructure.database.queries.updatePersonOppfolgingstilfelleVirksomhetList
1011
import no.nav.syfo.personstatus.infrastructure.database.toList
1112
import no.nav.syfo.util.nowUTC
@@ -328,7 +329,14 @@ class PersonOversiktStatusRepository(private val database: DatabaseInterface) :
328329
is Search.ByDate -> searchByDate(search)
329330
is Search.ByInitialsAndDate -> searchByInitialsAndDate(search)
330331
}
331-
return results.map { it.toPersonOversiktStatus() }
332+
val personOppfolgingstilfelleVirksomhetMap = database.connection.use { connection ->
333+
connection.getPersonOppfolgingstilfelleVirksomhetMap(pPersonOversikStatusIds = results.map { it.id })
334+
}
335+
336+
return results.map {
337+
val personOppfolgingstilfelleVirksomhetList = personOppfolgingstilfelleVirksomhetMap[it.id]?.toPersonOppfolgingstilfelleVirksomhet() ?: emptyList()
338+
it.toPersonOversiktStatus(personOppfolgingstilfelleVirksomhetList = personOppfolgingstilfelleVirksomhetList)
339+
}
332340
}
333341

334342
private fun searchByName(search: Search.ByName): List<PPersonOversiktStatus> {

src/test/kotlin/no/nav/syfo/personstatus/api/v2/PersonoversiktSearchApiSpek.kt

+41-12
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,34 @@ import no.nav.syfo.personstatus.api.v2.endpoints.personOversiktApiV2Path
77
import no.nav.syfo.personstatus.api.v2.model.PersonOversiktStatusDTO
88
import no.nav.syfo.personstatus.api.v2.model.SearchQueryDTO
99
import no.nav.syfo.personstatus.domain.PersonOversiktStatus
10+
import no.nav.syfo.personstatus.domain.Virksomhetsnummer
1011
import no.nav.syfo.personstatus.infrastructure.database.repository.PersonOversiktStatusRepository
1112
import no.nav.syfo.testutil.*
1213
import no.nav.syfo.testutil.UserConstants.VEILEDER_ID
1314
import no.nav.syfo.testutil.generator.generateOppfolgingstilfelle
15+
import no.nav.syfo.testutil.generator.generateOppfolgingstilfelleVirksomhet
1416
import org.amshove.kluent.shouldBeEqualTo
17+
import org.amshove.kluent.shouldNotBeNull
1518
import org.spekframework.spek2.Spek
1619
import org.spekframework.spek2.style.specification.describe
1720
import java.time.LocalDate
1821
import java.time.Month
1922

2023
object PersonoversiktSearchApiSpek : Spek({
2124

22-
val activeOppfolgingstilfelle = generateOppfolgingstilfelle(
25+
fun createActiveOppfolgingstilfelle(
26+
virksomhetsnummer: Virksomhetsnummer = Virksomhetsnummer("123456789"),
27+
virksomhetsnavn: String = "Virksomhet AS"
28+
) = generateOppfolgingstilfelle(
2329
start = LocalDate.now().minusWeeks(15),
2430
end = LocalDate.now().plusWeeks(1),
2531
antallSykedager = null,
32+
virksomhetList = listOf(
33+
generateOppfolgingstilfelleVirksomhet(
34+
virksomhetsnummer = virksomhetsnummer,
35+
virksomhetsnavn = virksomhetsnavn,
36+
),
37+
)
2638
)
2739

2840
describe("PersonoversiktSearchApi") {
@@ -50,7 +62,7 @@ object PersonoversiktSearchApiSpek : Spek({
5062
fnr = UserConstants.ARBEIDSTAKER_FNR,
5163
navn = "Fornavn Etternavn",
5264
fodselsdato = fodselsdato,
53-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
65+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
5466
)
5567
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
5668

@@ -63,7 +75,13 @@ object PersonoversiktSearchApiSpek : Spek({
6375
response.status shouldBeEqualTo HttpStatusCode.OK
6476
val personer = response.body<List<PersonOversiktStatusDTO>>()
6577
personer.size shouldBeEqualTo 1
66-
personer.first().fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_FNR
78+
val person = personer.first()
79+
person.fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_FNR
80+
person.latestOppfolgingstilfelle.shouldNotBeNull()
81+
val oppfolgingstilfelleVirksomhet = person.latestOppfolgingstilfelle?.virksomhetList?.first()
82+
oppfolgingstilfelleVirksomhet.shouldNotBeNull()
83+
oppfolgingstilfelleVirksomhet.virksomhetsnummer shouldBeEqualTo "123456789"
84+
oppfolgingstilfelleVirksomhet.virksomhetsnavn shouldBeEqualTo "Virksomhet AS"
6785
}
6886
}
6987

@@ -75,7 +93,7 @@ object PersonoversiktSearchApiSpek : Spek({
7593
fnr = UserConstants.ARBEIDSTAKER_FNR,
7694
navn = "Fornavn Etternavn",
7795
fodselsdato = fodselsdato,
78-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
96+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
7997
)
8098
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
8199

@@ -99,21 +117,24 @@ object PersonoversiktSearchApiSpek : Spek({
99117
fnr = UserConstants.ARBEIDSTAKER_FNR,
100118
navn = "Fornavn Etternavn",
101119
fodselsdato = fodselsdato,
102-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
120+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
103121
)
104122
val newPersonOversiktStatus2 =
105123
PersonOversiktStatus(
106124
fnr = UserConstants.ARBEIDSTAKER_2_FNR,
107125
navn = "Firstname Etternavn",
108126
fodselsdato = fodselsdato,
109-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
127+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(
128+
virksomhetsnummer = Virksomhetsnummer("987654321"),
129+
virksomhetsnavn = "Annen Virksomhet AS"
130+
),
110131
)
111132
val newPersonOversiktStatus3 =
112133
PersonOversiktStatus(
113134
fnr = UserConstants.ARBEIDSTAKER_NO_ACCESS,
114135
navn = "Forstname Etternavn",
115136
fodselsdato = fodselsdato,
116-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
137+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
117138
)
118139
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
119140
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus2)
@@ -128,8 +149,16 @@ object PersonoversiktSearchApiSpek : Spek({
128149
response.status shouldBeEqualTo HttpStatusCode.OK
129150
val personer = response.body<List<PersonOversiktStatusDTO>>()
130151
personer.size shouldBeEqualTo 2
131-
personer[0].fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_2_FNR
132-
personer[1].fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_FNR
152+
153+
val person = personer[0]
154+
person.fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_2_FNR
155+
person.latestOppfolgingstilfelle?.virksomhetList?.first()?.virksomhetsnummer shouldBeEqualTo "987654321"
156+
person.latestOppfolgingstilfelle?.virksomhetList?.first()?.virksomhetsnavn shouldBeEqualTo "Annen Virksomhet AS"
157+
158+
val annenPerson = personer[1]
159+
annenPerson.fnr shouldBeEqualTo UserConstants.ARBEIDSTAKER_FNR
160+
annenPerson.latestOppfolgingstilfelle?.virksomhetList?.first()?.virksomhetsnummer shouldBeEqualTo "123456789"
161+
annenPerson.latestOppfolgingstilfelle?.virksomhetList?.first()?.virksomhetsnavn shouldBeEqualTo "Virksomhet AS"
133162
}
134163
}
135164

@@ -141,7 +170,7 @@ object PersonoversiktSearchApiSpek : Spek({
141170
fnr = UserConstants.ARBEIDSTAKER_FNR,
142171
navn = "Fornavn Etternavn",
143172
fodselsdato = fodselsdato,
144-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
173+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
145174
)
146175
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
147176

@@ -163,7 +192,7 @@ object PersonoversiktSearchApiSpek : Spek({
163192
fnr = UserConstants.ARBEIDSTAKER_FNR,
164193
navn = "Fornavn Etternavn",
165194
fodselsdato = fodselsdato,
166-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
195+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
167196
)
168197
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
169198

@@ -185,7 +214,7 @@ object PersonoversiktSearchApiSpek : Spek({
185214
fnr = UserConstants.ARBEIDSTAKER_NO_ACCESS,
186215
navn = "Fornavn Etternavn",
187216
fodselsdato = fodselsdato,
188-
latestOppfolgingstilfelle = activeOppfolgingstilfelle,
217+
latestOppfolgingstilfelle = createActiveOppfolgingstilfelle(),
189218
)
190219
personOversiktStatusRepository.createPersonOversiktStatus(newPersonOversiktStatus)
191220

src/test/kotlin/no/nav/syfo/personstatus/api/v2/PersonoversiktStatusApiV2Spek.kt

+3-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import io.mockk.clearMocks
88
import io.mockk.every
99
import kotlinx.coroutines.runBlocking
1010
import no.nav.syfo.dialogmotestatusendring.domain.DialogmoteStatusendringType
11-
import no.nav.syfo.oppfolgingstilfelle.domain.PersonOppfolgingstilfelleVirksomhet
1211
import no.nav.syfo.personoppgavehendelse.kafka.KPersonoppgavehendelse
1312
import no.nav.syfo.personstatus.api.v2.endpoints.personOversiktApiV2Path
1413
import no.nav.syfo.personstatus.api.v2.model.PersonOversiktStatusDTO
@@ -752,18 +751,14 @@ object PersonoversiktStatusApiV2Spek : Spek({
752751
testApplication {
753752
val client = setupApiAndClient()
754753
val virksomhetList = listOf(
755-
PersonOppfolgingstilfelleVirksomhet(
756-
uuid = UUID.randomUUID(),
757-
createdAt = OffsetDateTime.now(),
754+
generateOppfolgingstilfelleVirksomhet(
758755
virksomhetsnummer = Virksomhetsnummer("123456789"),
759756
virksomhetsnavn = "Virksomhet AS",
760757
),
761-
PersonOppfolgingstilfelleVirksomhet(
762-
uuid = UUID.randomUUID(),
763-
createdAt = OffsetDateTime.now(),
758+
generateOppfolgingstilfelleVirksomhet(
764759
virksomhetsnummer = Virksomhetsnummer("123456000"),
765760
virksomhetsnavn = null,
766-
)
761+
),
767762
)
768763
val oppfolgingstilfelle = generateOppfolgingstilfelle(
769764
start = LocalDate.now().minusDays(30),

src/test/kotlin/no/nav/syfo/testutil/generator/OppfolgingstilfelleGenerator.kt

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package no.nav.syfo.testutil.generator
22

33
import no.nav.syfo.oppfolgingstilfelle.domain.Oppfolgingstilfelle
44
import no.nav.syfo.oppfolgingstilfelle.domain.PersonOppfolgingstilfelleVirksomhet
5+
import no.nav.syfo.personstatus.domain.Virksomhetsnummer
56
import java.time.LocalDate
67
import java.time.OffsetDateTime
78
import java.util.*
@@ -21,3 +22,10 @@ fun generateOppfolgingstilfelle(
2122
oppfolgingstilfelleBitReferanseUuid = UUID.randomUUID(),
2223
virksomhetList = virksomhetList,
2324
)
25+
26+
fun generateOppfolgingstilfelleVirksomhet(virksomhetsnummer: Virksomhetsnummer, virksomhetsnavn: String?) = PersonOppfolgingstilfelleVirksomhet(
27+
uuid = UUID.randomUUID(),
28+
createdAt = OffsetDateTime.now(),
29+
virksomhetsnummer = virksomhetsnummer,
30+
virksomhetsnavn = virksomhetsnavn,
31+
)

0 commit comments

Comments
 (0)