Skip to content

Commit 81f95fd

Browse files
authored
Merge pull request #331 from nl-portal/feature/fix-lastname-brp
fix for official lastname based on AanduidingNaamGebruik, which was n…
2 parents 6b039ac + 579249a commit 81f95fd

File tree

13 files changed

+85
-16
lines changed

13 files changed

+85
-16
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ dokkaVersion=1.9.20
1414

1515
org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=2048m
1616
org.gradle.workers.max=10
17-
version=1.4.30-SNAPSHOT
17+
version=1.4.31-SNAPSHOT

haalcentraal/haalcentraal-all/src/test/kotlin/nl/nlportal/haalcentraal/all/graphql/GemachtigdeQueryTest.kt

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import kotlinx.coroutines.test.runTest
2222
import nl.nlportal.haalcentraal.hr.domain.MaterieleRegistratie
2323
import nl.nlportal.commonground.authentication.CommonGroundAuthentication
2424
import nl.nlportal.graphql.security.SecurityConstants.AUTHENTICATION_KEY
25+
import nl.nlportal.haalcentraal.brp.domain.persoon.AanduidingNaamGebruik
2526
import nl.nlportal.haalcentraal.brp.domain.persoon.PersoonNaam
2627
import nl.nlportal.haalcentraal.brp.service.HaalCentraalBrpService
2728
import nl.nlportal.haalcentraal.hr.domain.MaatschappelijkeActiviteit
@@ -59,6 +60,7 @@ internal class GemachtigdeQueryTest {
5960
"test",
6061
"test",
6162
"test",
63+
AanduidingNaamGebruik.EIGEN,
6264
),
6365
)
6466
whenever(handelsregisterService.getGemachtigde(authentication)).thenReturn(

haalcentraal/haalcentraal-all/src/test/resources/data/get-ingeschreven-persoon.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"aanhef": "Geachte mevrouw Kooyman",
4747
"aanschrijfwijze": "M. Kooyman",
4848
"gebruikInLopendeTekst": "mevrouw Kooyman",
49-
"aanduidingNaamgebruik": "eigen",
49+
"aanduidingNaamgebruik": "partner",
5050
"voornamen": "Merel",
5151
"voorletters": "M.",
5252
"voorvoegsel": "de",
@@ -208,6 +208,7 @@
208208
"naam": {
209209
"voornamen": "Martin Gerard",
210210
"voorletters": "M.G.",
211+
"voorvoegsel": "van der",
211212
"geslachtsnaam": "Maassen"
212213
},
213214
"aangaanHuwelijkPartnerschap": {
@@ -246,4 +247,4 @@
246247
"dag": 10
247248
}
248249
}
249-
}
250+
}

haalcentraal/haalcentraal-brp/src/main/kotlin/nl/nlportal/haalcentraal/brp/domain/persoon/Persoon.kt

+22-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ data class Persoon(
2525
val burgerservicenummer: String? = null,
2626
val geslachtsaanduiding: String? = null,
2727
val geheimhoudingPersoonsgegevens: Boolean? = false,
28-
val naam: PersoonNaam? = null,
28+
val naam: PersoonNaam,
2929
val geboorte: PersoonDatumLandPlaats? = null,
3030
val nationaliteiten: List<PersoonNationaliteiten>? = null,
3131
val verblijfplaats: PersoonVerblijfplaats? = null,
@@ -45,4 +45,25 @@ data class Persoon(
4545
haalCentraalBrpService.getBewonersAantal(dfe.graphQlContext[AUTHENTICATION_KEY], it)
4646
}
4747
}
48+
49+
fun officialLastName(): String {
50+
if (naam.aanduidingNaamgebruik == null) {
51+
return naam.lastName()
52+
}
53+
val lastNamePartner = partners?.firstOrNull { it.naam != null }?.naam?.lastName() ?: ""
54+
return when (naam.aanduidingNaamgebruik) {
55+
AanduidingNaamGebruik.PARTNER -> {
56+
lastNamePartner
57+
}
58+
AanduidingNaamGebruik.PARTNER_EIGEN -> {
59+
"$lastNamePartner - ${naam.lastName()}"
60+
}
61+
AanduidingNaamGebruik.EIGEN_PARTNER -> {
62+
"${naam.lastName()} - $lastNamePartner"
63+
}
64+
else -> {
65+
naam.lastName()
66+
}
67+
}
68+
}
4869
}

haalcentraal/haalcentraal-brp/src/main/kotlin/nl/nlportal/haalcentraal/brp/domain/persoon/PersoonKind.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ package nl.nlportal.haalcentraal.brp.domain.persoon
1818
data class PersoonKind(
1919
val burgerservicenummer: String? = null,
2020
val leeftijd: Int? = null,
21-
val naam: PersoonNaam? = null,
21+
val naam: Naam? = null,
2222
val geboorte: PersoonDatumLandPlaats? = null,
2323
)

haalcentraal/haalcentraal-brp/src/main/kotlin/nl/nlportal/haalcentraal/brp/domain/persoon/PersoonNaam.kt

+21-1
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,30 @@
1515
*/
1616
package nl.nlportal.haalcentraal.brp.domain.persoon
1717

18+
import com.fasterxml.jackson.annotation.JsonValue
19+
1820
data class PersoonNaam(
1921
val aanhef: String? = null,
2022
val voornamen: String? = null,
2123
val voorletters: String? = null,
2224
val voorvoegsel: String? = null,
2325
val geslachtsnaam: String? = null,
24-
)
26+
val aanduidingNaamgebruik: AanduidingNaamGebruik?,
27+
) {
28+
fun lastName(): String {
29+
return if (voorvoegsel != null && geslachtsnaam != null) {
30+
"$voorvoegsel $geslachtsnaam"
31+
} else {
32+
geslachtsnaam ?: ""
33+
}
34+
}
35+
}
36+
37+
enum class AanduidingNaamGebruik(
38+
@JsonValue val value: String,
39+
) {
40+
EIGEN("eigen"),
41+
EIGEN_PARTNER("eigen_partner"),
42+
PARTNER("partner"),
43+
PARTNER_EIGEN("partner_eigen"),
44+
}

haalcentraal/haalcentraal-brp/src/main/kotlin/nl/nlportal/haalcentraal/brp/domain/persoon/PersoonOuder.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ data class PersoonOuder(
2020
val geslachtsaanduiding: String? = null,
2121
val ouderAanduiding: String? = null,
2222
val datumIngangFamilierechtelijkeBetrekking: PersoonDatum? = null,
23-
val naam: PersoonNaam? = null,
23+
val naam: Naam? = null,
2424
val geboorte: PersoonDatumLandPlaats? = null,
2525
)

haalcentraal/haalcentraal-brp/src/main/kotlin/nl/nlportal/haalcentraal/brp/domain/persoon/PersoonPartner.kt

+16-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,21 @@ data class PersoonPartner(
2020
val geslachtsaanduiding: String? = null,
2121
val soortVerbintenis: String? = null,
2222
val datumIngangFamilierechtelijkeBetrekking: PersoonDatum? = null,
23-
val naam: PersoonNaam? = null,
23+
val naam: Naam? = null,
2424
val geboorte: PersoonDatumLandPlaats? = null,
2525
val aangaanHuwelijkPartnerschap: PersoonDatumLandPlaats? = null,
26-
)
26+
)
27+
28+
data class Naam(
29+
val voorletters: String? = null,
30+
val voorvoegsel: String? = null,
31+
val geslachtsnaam: String? = null,
32+
) {
33+
fun lastName(): String {
34+
return if (voorvoegsel != null && geslachtsnaam != null) {
35+
"$voorvoegsel $geslachtsnaam"
36+
} else {
37+
geslachtsnaam ?: ""
38+
}
39+
}
40+
}

haalcentraal/haalcentraal-brp/src/test/kotlin/nl/nlportal/haalcentraal/brp/client/HaalCentraalBrpClientTest.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import nl.nlportal.commonground.authentication.JwtBuilder
2121
import nl.nlportal.core.ssl.ClientKey
2222
import nl.nlportal.core.ssl.Ssl
2323
import nl.nlportal.core.ssl.StringClientSslContextResolver
24+
import nl.nlportal.haalcentraal.brp.domain.persoon.AanduidingNaamGebruik
2425
import nl.nlportal.haalcentraal.brp.domain.persoon.Persoon
2526
import nl.nlportal.haalcentraal.brp.domain.persoon.PersoonNaam
2627
import nl.nlportal.haalcentraal.client.HaalCentraalClientConfig
@@ -40,7 +41,11 @@ internal class HaalCentraalBrpClientTest {
4041
private lateinit var haalCentraalClientConfig: HaalCentraalClientConfig
4142
private lateinit var server: MockWebServer
4243
private val bsn = "0123456789"
43-
private val persoon = Persoon(burgerservicenummer = bsn, naam = PersoonNaam(voornamen = "John", geslachtsnaam = "Doe"))
44+
private val persoon =
45+
Persoon(
46+
burgerservicenummer = bsn,
47+
naam = PersoonNaam(voornamen = "John", geslachtsnaam = "Doe", aanduidingNaamgebruik = AanduidingNaamGebruik.EIGEN),
48+
)
4449

4550
@BeforeEach
4651
internal fun setUp() {

haalcentraal/haalcentraal-brp/src/test/kotlin/nl/nlportal/haalcentraal/brp/graphql/PersoonQueryIT.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,11 @@ internal class PersoonQueryIT(
7070
voorletters,
7171
voornamen,
7272
voorvoegsel,
73-
geslachtsnaam
74-
}
73+
geslachtsnaam,
74+
lastName,
75+
aanduidingNaamgebruik,
76+
},
77+
officialLastName
7578
}
7679
}
7780
""".trimIndent()
@@ -214,7 +217,6 @@ internal class PersoonQueryIT(
214217
.jsonPath("$basePath.kinderen[0].leeftijd").isEqualTo(18)
215218
.jsonPath("$basePath.geheimhoudingPersoonsgegevens").isEqualTo(false)
216219
.jsonPath("$basePath.nationaliteiten").isArray()
217-
.jsonPath("$basePath.nationaliteiten[0].nationaliteit.omschrijving", contains("Nederlandse", "Franse"))
218220
}
219221

220222
private fun setupMockServer() {

haalcentraal/haalcentraal-brp/src/test/kotlin/nl/nlportal/haalcentraal/brp/impl/HaalCentraalBrpServiceTest.kt

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import nl.nlportal.haalcentraal.brp.domain.persoon.PersoonNaam
2121
import nl.nlportal.haalcentraal.brp.client.HaalCentraalBrpClient
2222
import kotlinx.coroutines.ExperimentalCoroutinesApi
2323
import kotlinx.coroutines.test.runTest
24+
import nl.nlportal.haalcentraal.brp.domain.persoon.AanduidingNaamGebruik
2425
import nl.nlportal.haalcentraal.brp.service.impl.HaalCentraalBrpServiceImpl
2526
import org.junit.jupiter.api.Assertions.assertEquals
2627
import org.junit.jupiter.api.Assertions.assertNull
@@ -49,6 +50,7 @@ class HaalCentraalBrpServiceTest {
4950
"V.",
5051
"van",
5152
"Achternaam",
53+
AanduidingNaamGebruik.EIGEN,
5254
),
5355
null,
5456
null,
@@ -89,6 +91,7 @@ class HaalCentraalBrpServiceTest {
8991
"V.",
9092
"van",
9193
"Achternaam",
94+
AanduidingNaamGebruik.EIGEN,
9295
),
9396
)
9497

haalcentraal/haalcentraal-brp/src/test/resources/data/get-ingeschreven-persoon.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"aanhef": "Geachte mevrouw Kooyman",
4747
"aanschrijfwijze": "M. Kooyman",
4848
"gebruikInLopendeTekst": "mevrouw Kooyman",
49-
"aanduidingNaamgebruik": "eigen",
49+
"aanduidingNaamgebruik": "partner",
5050
"voornamen": "Merel",
5151
"voorletters": "M.",
5252
"voorvoegsel": "de",
@@ -208,6 +208,7 @@
208208
"naam": {
209209
"voornamen": "Martin Gerard",
210210
"voorletters": "M.G.",
211+
"voorvoegsel": "van der",
211212
"geslachtsnaam": "Maassen"
212213
},
213214
"aangaanHuwelijkPartnerschap": {
@@ -246,4 +247,4 @@
246247
"dag": 10
247248
}
248249
}
249-
}
250+
}

settings.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pluginManagement {
2626
}
2727
}
2828
plugins {
29-
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
29+
id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0"
3030
}
3131

3232
include(

0 commit comments

Comments
 (0)