Skip to content

Commit be3e179

Browse files
committed
Bytt skatteendepunkt
1 parent 2379cce commit be3e179

File tree

5 files changed

+44
-33
lines changed

5 files changed

+44
-33
lines changed

vilkår/skatt/infrastructure/src/main/kotlin/vilkår/skatt/infrastructure/client/SkatteClient.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ class SkatteClient(
129129
correlationId: CorrelationId,
130130
): Either<SkatteoppslagFeil, Skattegrunnlag.SkattegrunnlagForÅr> {
131131
val getRequest = HttpRequest.newBuilder()
132-
.uri(URI.create("${skatteetatenConfig.apiBaseUrl}/api/v1/spesifisertsummertskattegrunnlag"))
132+
.uri(URI.create("${skatteetatenConfig.apiBaseUrl}/api/v2/summertskattegrunnlag"))
133133
.setHeader("Accept", "application/json")
134134
.setHeader("Authorization", "Bearer $token")
135-
.setHeader("Nav-Personident", fnr.toString())
135+
.setHeader("personidentifikator", fnr.toString())
136136
.setHeader("inntektsaar", inntektsÅr.toString())
137137
.setHeader("rettighetspakke", skatteetatenConfig.rettighetspakke)
138138
.setHeader("Nav-Call-Id", correlationId.toString())
@@ -166,7 +166,7 @@ class SkatteClient(
166166
val body: String = response.body()
167167

168168
return when (statusCode) {
169-
200 -> SpesifisertSummertSkattegrunnlagResponseJson.fromJson(
169+
200 -> SummerSkattegrunnlagV2Response.fromJson(
170170
json = body,
171171
fnr = fnr,
172172
inntektsår = inntektsår,
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,45 @@ import no.nav.su.se.bakover.common.sikkerLogg
1111
import org.slf4j.LoggerFactory
1212
import vilkår.skatt.domain.Skattegrunnlag
1313
import vilkår.skatt.domain.Stadie
14+
import vilkår.skatt.infrastructure.client.SummerSkattegrunnlagV2Response.SummertSkattegrunnlagsV2Object.Kjoeretoey
1415
import java.time.LocalDate
1516
import java.time.Year
16-
import vilkår.skatt.infrastructure.client.SpesifisertSummertSkattegrunnlagResponseJson.SpesifisertSummertSkattegrunnlagsobjekt.Spesifisering as EksternSpesifisering
1717

18-
private val log = LoggerFactory.getLogger(SpesifisertSummertSkattegrunnlagResponseJson::class.java)
19-
20-
internal data class SpesifisertSummertSkattegrunnlagResponseJson(
21-
val grunnlag: List<SpesifisertSummertSkattegrunnlagsobjekt>? = emptyList(),
22-
val skatteoppgjoersdato: String?,
23-
val svalbardGrunnlag: List<SpesifisertSummertSkattegrunnlagsobjekt>? = null,
18+
private val log = LoggerFactory.getLogger(SummerSkattegrunnlagV2Response::class.java)
19+
20+
internal data class SummerSkattegrunnlagV2Response(
21+
val ajourholdstidspunkt: String? = null,
22+
val grunnlag: List<SummertSkattegrunnlagsV2Object>? = emptyList(),
23+
val inntektsår: String? = null,
24+
val kildeskattPaaLoennGrunnlag: List<SummertSkattegrunnlagsV2Object>? = emptyList(),
25+
val personidentifikator: String? = null,
26+
val skatteoppgjoersdato: String? = null,
27+
val skjermet: Boolean? = null,
28+
val stadie: String? = null,
29+
val svalbardGrunnlag: List<SummertSkattegrunnlagsV2Object>? = emptyList(),
2430
) {
2531

2632
/**
2733
* @param spesifisering I følge modellen til skatt, kan et innslag ha 0, 1 eller flere spesifiseringer.
2834
*/
29-
internal data class SpesifisertSummertSkattegrunnlagsobjekt(
35+
internal data class SummertSkattegrunnlagsV2Object(
3036
val beloep: String,
31-
val spesifisering: List<EksternSpesifisering>? = null,
32-
val tekniskNavn: String,
3337
val kategori: String,
38+
val spesifisering: List<Kjoeretoey>? = null,
39+
val tekniskNavn: String,
3440
) {
3541
/**
36-
* Finnes mange forskjellige typer spesifisering. Vi er bare interessert i kjøretøy
42+
* Finnes mange forskjellige typer spesifisering. Vi er bare interessert i kjøretøy og det er også den eneste rettighetspakken vi har.
3743
*/
38-
data class Spesifisering(
44+
data class Kjoeretoey(
3945
val type: String,
40-
val beloep: String?,
41-
val registreringsnummer: String?,
42-
val fabrikatnavn: String?,
43-
val aarForFoerstegangsregistrering: String?,
44-
val formuesverdi: String?,
45-
val antattVerdiSomNytt: String?,
46-
val antattMarkedsverdi: String?,
46+
val aarForFoerstegangsregistrering: String? = null,
47+
val antattMarkedsverdi: String? = null,
48+
val antattVerdiSomNytt: String? = null,
49+
val beloep: String? = null,
50+
val fabrikatnavn: String? = null,
51+
val formuesverdi: String? = null,
52+
val registreringsnummer: String? = null,
4753
)
4854

4955
fun toDomainr: Year, stadie: Stadie): Skattegrunnlag.Grunnlag {
@@ -109,7 +115,7 @@ internal data class SpesifisertSummertSkattegrunnlagResponseJson(
109115
stadie: Stadie,
110116
): Either<SkatteoppslagFeil, Skattegrunnlag.SkattegrunnlagForÅr> {
111117
return Either.catch {
112-
deserialize<SpesifisertSummertSkattegrunnlagResponseJson>(json)
118+
deserialize<SummerSkattegrunnlagV2Response>(json)
113119
}.flatMap {
114120
it.toDomain(inntektsår, stadie)
115121
}.mapLeft {
@@ -124,7 +130,7 @@ internal data class SpesifisertSummertSkattegrunnlagResponseJson(
124130
}
125131
}
126132

127-
private fun List<EksternSpesifisering>.toDomain(): List<Skattegrunnlag.Spesifisering.Kjøretøy> {
133+
private fun List<Kjoeretoey>.toDomain(): List<Skattegrunnlag.Spesifisering.Kjøretøy> {
128134
return this.mapNotNull {
129135
when (it.type) {
130136
"Kjoeretoey" -> Skattegrunnlag.Spesifisering.Kjøretøy(
@@ -145,7 +151,7 @@ private fun List<EksternSpesifisering>.toDomain(): List<Skattegrunnlag.Spesifise
145151
}
146152
}
147153

148-
private fun SpesifisertSummertSkattegrunnlagResponseJson.toDomain(
154+
private fun SummerSkattegrunnlagV2Response.toDomain(
149155
år: Year,
150156
stadie: Stadie,
151157
): Either<Throwable, Skattegrunnlag.SkattegrunnlagForÅr> {

vilkår/skatt/infrastructure/src/test/kotlin/vilkår/skatt/infrastructure/client/SkatteClientTest.kt

+8-8
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ internal class SkatteClientTest {
4646
fun `nettverks feil håndteres`() {
4747
startedWireMockServerWithCorrelationId {
4848
stubFor(
49-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
49+
WireMock.get("/api/v2/summertskattegrunnlag")
5050
.willReturn(WireMock.aResponse().withFault(Fault.CONNECTION_RESET_BY_PEER)),
5151
)
5252

@@ -76,7 +76,7 @@ internal class SkatteClientTest {
7676
fun `ukjent fnr returnerer feilkode og tilsvarende skatteoppslagsfeil`() {
7777
startedWireMockServerWithCorrelationId {
7878
stubFor(
79-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
79+
WireMock.get("/api/v2/summertskattegrunnlag")
8080
.willReturn(
8181
WireMock.aResponse()
8282
.withHeader("Content-Type", "application/json")
@@ -119,7 +119,7 @@ internal class SkatteClientTest {
119119
fun `hvis skattegrunnlag ikke eksisterer for fnr og gitt år så mapper vi til tilsvarende skatteoppslagsfeil`() {
120120
startedWireMockServerWithCorrelationId {
121121
stubFor(
122-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
122+
WireMock.get("/api/v2/summertskattegrunnlag")
123123
.willReturn(
124124
WireMock.aResponse()
125125
.withHeader("Content-Type", "application/json")
@@ -162,7 +162,7 @@ internal class SkatteClientTest {
162162
fun `SSG-006 Oppgitt inntektsår er ikke støttet`() {
163163
startedWireMockServerWithCorrelationId {
164164
stubFor(
165-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
165+
WireMock.get("/api/v2/summertskattegrunnlag")
166166
.willReturn(
167167
WireMock.aResponse()
168168
.withHeader("Content-Type", "application/json")
@@ -205,7 +205,7 @@ internal class SkatteClientTest {
205205
fun `feil i mapping håndteres (dato kan ikke parses)`() {
206206
startedWireMockServerWithCorrelationId {
207207
stubFor(
208-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
208+
WireMock.get("/api/v2/summertskattegrunnlag")
209209
.willReturn(
210210
WireMock.ok(
211211
"""
@@ -237,7 +237,7 @@ internal class SkatteClientTest {
237237
fun `feil i deserializering håndteres`() {
238238
startedWireMockServerWithCorrelationId {
239239
stubFor(
240-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
240+
WireMock.get("/api/v2/summertskattegrunnlag")
241241
.willReturn(
242242
WireMock.ok(
243243
"""
@@ -269,7 +269,7 @@ internal class SkatteClientTest {
269269
fun `success response gir mapped data`() {
270270
startedWireMockServerWithCorrelationId {
271271
stubFor(
272-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
272+
WireMock.get("/api/v2/summertskattegrunnlag")
273273
.willReturn(
274274
// language=JSON
275275
WireMock.ok(
@@ -366,7 +366,7 @@ internal class SkatteClientTest {
366366
fun `kan deserialisere alle feltene i responsen er null`() {
367367
startedWireMockServerWithCorrelationId {
368368
stubFor(
369-
WireMock.get("/api/v1/spesifisertsummertskattegrunnlag")
369+
WireMock.get("/api/v2/summertskattegrunnlag")
370370
.willReturn(
371371
WireMock.ok("""{"grunnlag":null,"svalbardGrunnlag":null,"skatteoppgjoersdato":null}""".trimIndent())
372372
.withHeader("Content-Type", "application/json"),
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
<include file="../../../bootstrap/src/test/resources/logbackConfig-test.xml"/>
4+
</configuration>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
mock-maker-inline

0 commit comments

Comments
 (0)