Skip to content

Commit bac92fa

Browse files
committed
Lag datatype for utgåande melding til rapid for å få rett feltnamn i JSON
1 parent 120375c commit bac92fa

File tree

5 files changed

+92
-24
lines changed

5 files changed

+92
-24
lines changed

src/main/kotlin/no/nav/hjelpemidler/Application.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.hjelpemidler
22

3+
import com.fasterxml.jackson.annotation.JsonFormat
34
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
45
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
56
import com.fasterxml.jackson.module.kotlin.readValue
@@ -16,7 +17,9 @@ import no.nav.helse.rapids_rivers.RapidApplication
1617
import no.nav.helse.rapids_rivers.RapidsConnection
1718
import no.nav.hjelpemidler.configuration.Configuration
1819
import no.nav.hjelpemidler.metrics.SensuMetrics
19-
import no.nav.hjelpemidler.model.Statusinfo
20+
import no.nav.hjelpemidler.model.Ordrelinje
21+
import no.nav.hjelpemidler.model.OrdrelinjeOebs
22+
import no.nav.hjelpemidler.model.toOrdrelinje
2023
import java.net.InetAddress
2124
import java.time.LocalDateTime
2225
import java.util.UUID
@@ -53,7 +56,7 @@ fun main() {
5356
null,
5457
null,
5558
),
56-
8080,
59+
Configuration.rapidConfig["HTTP_PORT"]!!.toInt(),
5760
)
5861
).withKtorModule {
5962
routing {
@@ -70,7 +73,7 @@ fun main() {
7073
sikkerlogg.info("Received JSON push request from OEBS: $rawJson")
7174

7275
// Check for valid json request
73-
val ordrelinje: Statusinfo?
76+
val ordrelinje: OrdrelinjeOebs?
7477
try {
7578
ordrelinje = mapper.readValue(rawJson)
7679
sikkerlogg.info("Parsing incoming json request successful: ${mapper.writeValueAsString(ordrelinje)}")
@@ -115,7 +118,7 @@ fun main() {
115118
eventName = "hm-NyOrdrelinje",
116119
opprettet = LocalDateTime.now(),
117120
fnrBruker = ordrelinje.fnrBruker,
118-
data = ordrelinje
121+
data = ordrelinje.toOrdrelinje()
119122
)
120123

121124
// Publish the received json to our rapid
@@ -143,7 +146,8 @@ fun main() {
143146
data class Message(
144147
val eventId: UUID,
145148
val eventName: String,
149+
@JsonFormat(shape = JsonFormat.Shape.STRING)
146150
val opprettet: LocalDateTime,
147151
val fnrBruker: String,
148-
val data: Statusinfo,
152+
val data: Ordrelinje,
149153
)

src/main/kotlin/no/nav/hjelpemidler/configuration/Configuration.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
package no.nav.hjelpemidler.configuration
22

3-
import com.natpryce.konfig.*
3+
import com.natpryce.konfig.ConfigurationMap
4+
import com.natpryce.konfig.ConfigurationProperties
5+
import com.natpryce.konfig.EnvironmentVariables
6+
import com.natpryce.konfig.Key
7+
import com.natpryce.konfig.overriding
8+
import com.natpryce.konfig.stringType
49

510
internal object Configuration {
611

@@ -14,6 +19,8 @@ internal object Configuration {
1419

1520
private val prodProperties = ConfigurationMap(
1621
mapOf(
22+
"HTTP_PORT" to "8080",
23+
1724
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
1825
"kafka.reset.policy" to "latest",
1926
"kafka.client.id" to "hm-oebs-listener-prod",
@@ -25,6 +32,8 @@ internal object Configuration {
2532

2633
private val devProperties = ConfigurationMap(
2734
mapOf(
35+
"HTTP_PORT" to "8080",
36+
2837
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
2938
"kafka.reset.policy" to "latest",
3039
"kafka.client.id" to "hm-oebs-listener-dev",
@@ -37,17 +46,17 @@ internal object Configuration {
3746
private val localProperties = ConfigurationMap(
3847
mapOf(
3948
"HTTP_PORT" to "8085",
49+
"OEBSTOKEN" to "abc",
4050

4151
"kafka.reset.policy" to "earliest",
42-
"application.httpPort" to "8082",
4352
"application.profile" to "LOCAL",
4453
"KAFKA_TRUSTSTORE_PATH" to "",
4554
"KAFKA_CREDSTORE_PASSWORD" to "",
4655
"KAFKA_KEYSTORE_PATH" to "",
4756
"kafka.brokers" to "host.docker.internal:9092",
4857
"kafka.client.id" to "hm-oebs-listener-local",
4958
"kafka.aiven.topic" to "teamdigihot.hm-soknadsbehandling-v1",
50-
59+
"kafka.reset.policy" to "earliest",
5160
"application.profile" to "local",
5261
"SENSU_URL" to "https://test",
5362
)
@@ -64,7 +73,7 @@ internal object Configuration {
6473
"KAFKA_TRUSTSTORE_PASSWORD" to config()[Key("KAFKA_CREDSTORE_PASSWORD", stringType)],
6574
"KAFKA_KEYSTORE_PATH" to config()[Key("KAFKA_KEYSTORE_PATH", stringType)],
6675
"KAFKA_KEYSTORE_PASSWORD" to config()[Key("KAFKA_CREDSTORE_PASSWORD", stringType)],
67-
"HTTP_PORT" to "8080",
76+
"HTTP_PORT" to config()[Key("HTTP_PORT", stringType)],
6877
"KAFKA_CLIENT_ID" to config()[Key("kafka.client.id", stringType)],
6978
) + System.getenv().filter { it.key.startsWith("NAIS_") }
7079

@@ -73,5 +82,4 @@ internal object Configuration {
7382
"SENSU_URL" to config()[Key("SENSU_URL", stringType)],
7483
"OEBSTOKEN" to config()[Key("OEBSTOKEN", stringType)],
7584
) + System.getenv().filter { it.key.startsWith("NAIS_") }
76-
77-
}
85+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package no.nav.hjelpemidler.model
2+
3+
import com.fasterxml.jackson.annotation.JsonFormat
4+
import java.time.LocalDate
5+
6+
data class Ordrelinje(
7+
val mottakendeSystem: String,
8+
val serviceforespørsel: Int,
9+
val serviceforespørselstatus: String,
10+
val serviceforespørseltype: String,
11+
valknadstype: String,
12+
13+
// N.B.: Viss dato er "" i meldinga blir den til null under deserialisering og forblir null under serialisering (utgåande JSON)
14+
@JsonFormat(shape = JsonFormat.Shape.STRING)
15+
val vedtaksdato: LocalDate?,
16+
17+
valknad: String,
18+
val resultat: String,
19+
val saksblokkOgSaksnr: String,
20+
val ordrenr: Int,
21+
val ordrelinje: Int,
22+
val delordrelinje: Int,
23+
val artikkelbeskrivelse: String,
24+
val produktgruppe: String,
25+
val artikkelnr: String,
26+
val hjelpemiddeltype: String,
27+
val antall: Int,
28+
val fnrBruker: String,
29+
30+
@JsonFormat(shape = JsonFormat.Shape.STRING)
31+
val sistOppdatert: LocalDate
32+
)

src/main/kotlin/no/nav/hjelpemidler/model/Statusinfo.kt renamed to src/main/kotlin/no/nav/hjelpemidler/model/OrdrelinjeOebs.kt

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat
44
import com.fasterxml.jackson.annotation.JsonProperty
55
import java.time.LocalDate
66

7-
data class Statusinfo(
7+
data class OrdrelinjeOebs(
88
@JsonProperty("System")
99
val mottakendeSystem: String,
1010

@@ -21,7 +21,7 @@ data class Statusinfo(
2121
valknadstype: String,
2222

2323
// N.B.: Viss dato er "" i meldinga blir den til null under deserialisering og forblir null under serialisering (utgåande JSON)
24-
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
24+
@JsonFormat(shape = JsonFormat.Shape.STRING)
2525
@JsonProperty("IncidentVedtakDato")
2626
val vedtaksdato: LocalDate?,
2727

@@ -32,16 +32,16 @@ data class Statusinfo(
3232
val resultat: String,
3333

3434
@JsonProperty("IncidentRef")
35-
val saksblokkOgSaksnummer: String,
35+
val saksblokkOgSaksnr: String,
3636

3737
@JsonProperty("OrdreNumber")
38-
val ordrenummer: Int,
38+
val ordrenr: Int,
3939

4040
@JsonProperty("LineNumber")
41-
val ordrelinjenummer: Int,
41+
val ordrelinje: Int,
4242

4343
@JsonProperty("ShipmentNumber")
44-
val delordrelinjenummer: Int,
44+
val delordrelinje: Int,
4545

4646
@JsonProperty("Description")
4747
val artikkelbeskrivelse: String,
@@ -50,7 +50,7 @@ data class Statusinfo(
5050
val produktgruppe: String,
5151

5252
@JsonProperty("OrderedItem")
53-
val artikkel: String,
53+
val artikkelnr: String,
5454

5555
@JsonProperty("User_ItemType")
5656
val hjelpemiddeltype: String,
@@ -61,7 +61,31 @@ data class Statusinfo(
6161
@JsonProperty("AccountNumber")
6262
val fnrBruker: String,
6363

64-
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
64+
@JsonFormat(shape = JsonFormat.Shape.STRING)
6565
@JsonProperty("LastUpdateDate")
6666
val sistOppdatert: LocalDate
6767
)
68+
69+
fun OrdrelinjeOebs.toOrdrelinje(): Ordrelinje {
70+
return Ordrelinje(
71+
this.mottakendeSystem,
72+
this.serviceforespørsel,
73+
this.serviceforespørselstatus,
74+
this.serviceforespørseltype,
75+
this.søknadstype,
76+
this.vedtaksdato,
77+
this.søknad,
78+
this.resultat,
79+
this.saksblokkOgSaksnr,
80+
this.ordrenr,
81+
this.ordrelinje,
82+
this.delordrelinje,
83+
this.artikkelbeskrivelse,
84+
this.produktgruppe,
85+
this.artikkelnr,
86+
this.hjelpemiddeltype,
87+
this.antall,
88+
this.fnrBruker,
89+
this.sistOppdatert
90+
)
91+
}

src/test/kotlin/no/nav/hjelpemidler/ParsingTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package no.nav.hjelpemidler
33
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
44
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
55
import com.fasterxml.jackson.module.kotlin.readValue
6-
import no.nav.hjelpemidler.model.Statusinfo
6+
import no.nav.hjelpemidler.model.OrdrelinjeOebs
77
import java.time.LocalDate
88
import kotlin.test.Test
99
import kotlin.test.assertEquals
@@ -17,7 +17,7 @@ internal class ParsingTest {
1717
val mapper = jacksonObjectMapper()
1818
mapper.registerModule(JavaTimeModule())
1919

20-
val result: Statusinfo = mapper.readValue(
20+
val result: OrdrelinjeOebs = mapper.readValue(
2121
"""
2222
{
2323
"System": "DIGIHOT",
@@ -55,7 +55,7 @@ internal class ParsingTest {
5555
val mapper = jacksonObjectMapper()
5656
mapper.registerModule(JavaTimeModule())
5757

58-
val result: Statusinfo = mapper.readValue(
58+
val result: OrdrelinjeOebs = mapper.readValue(
5959
"""
6060
{
6161
"System": "DIGIHOT",
@@ -93,7 +93,7 @@ internal class ParsingTest {
9393
val mapper = jacksonObjectMapper()
9494
mapper.registerModule(JavaTimeModule())
9595

96-
val result: Statusinfo = mapper.readValue(
96+
val result: OrdrelinjeOebs = mapper.readValue(
9797
"""
9898
{
9999
"System": "DIGIHOT",
@@ -120,7 +120,7 @@ internal class ParsingTest {
120120
)
121121

122122
println(result.toString())
123-
assertEquals("012345", result.artikkel)
123+
assertEquals("012345", result.artikkelnr)
124124
println(mapper.writeValueAsString(result))
125125
}
126126
}

0 commit comments

Comments
 (0)