Skip to content

Commit a7f2155

Browse files
avoldsundkristoivgustavli
committed
Skift mapper til Jackson for å parse dato til LocalDate
Co-authored-by: kristoiv <[email protected]> Co-authored-by: gustavli <[email protected]>
1 parent c598b5b commit a7f2155

File tree

4 files changed

+75
-50
lines changed

4 files changed

+75
-50
lines changed

build.gradle.kts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ val brukernotifikasjon_schemas_version: String by project
1010
val kafka_version: String by project
1111
val kafka_avro_version: String by project
1212
val influxdb_version: String by project
13-
val klaxon_version: String by project
1413

1514
group = "no.nav.hjelpemidler"
1615
version = "1.0-SNAPSHOT"
@@ -30,7 +29,6 @@ dependencies {
3029
implementation("org.apache.kafka:kafka-clients:$kafka_version")
3130
implementation("io.confluent:kafka-avro-serializer:$kafka_avro_version")
3231
implementation("org.influxdb:influxdb-java:$influxdb_version")
33-
implementation("com.beust:klaxon:$klaxon_version")
3432
}
3533

3634
tasks.withType<KotlinCompile>() {

gradle.properties

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@ konfig_version=1.6.10.0
66
brukernotifikasjon_schemas_version=1.2021.01.18-11.12-b9c8c40b98d1
77
kafka_version=2.6.0
88
kafka_avro_version=6.0.1
9-
influxdb_version=2.21
10-
klaxon_version=5.0.1
9+
influxdb_version=2.21

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

Lines changed: 11 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package no.nav.hjelpemidler
22

3-
import com.beust.klaxon.Json
4-
import com.beust.klaxon.Klaxon
3+
import com.fasterxml.jackson.databind.ObjectMapper
4+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
5+
import com.fasterxml.jackson.module.kotlin.readValue
56
import io.ktor.application.call
67
import io.ktor.http.HttpStatusCode
78
import io.ktor.request.header
@@ -15,14 +16,19 @@ import no.nav.helse.rapids_rivers.RapidApplication
1516
import no.nav.helse.rapids_rivers.RapidsConnection
1617
import no.nav.hjelpemidler.configuration.Configuration
1718
import no.nav.hjelpemidler.metrics.SensuMetrics
19+
import no.nav.hjelpemidler.model.Statusinfo
1820
import java.net.InetAddress
1921
import java.time.LocalDateTime
2022
import java.util.UUID
2123

2224
private val logg = KotlinLogging.logger {}
2325
private val sikkerlogg = KotlinLogging.logger("tjenestekall")
26+
private val mapper = ObjectMapper().registerModule(JavaTimeModule())
2427

28+
// Unngå "inappropriate blocking method call" for objectmapper.writeValueAsString
29+
@Suppress("BlockingMethodInNonBlockingContext")
2530
fun main() {
31+
2632
var rapidApp: RapidsConnection? = null
2733
rapidApp = RapidApplication.Builder(
2834
RapidApplication.RapidApplicationConfig(
@@ -65,8 +71,8 @@ fun main() {
6571
// Check for valid json request
6672
val ordrelinje: Statusinfo?
6773
try {
68-
ordrelinje = Klaxon().parse<Statusinfo>(rawJson)
69-
sikkerlogg.info("Parsing incoming json request successful: ${Klaxon().toJsonString(ordrelinje)}")
74+
ordrelinje = mapper.readValue(rawJson)
75+
sikkerlogg.info("Parsing incoming json request successful: ${mapper.writeValueAsString(ordrelinje)}")
7076
SensuMetrics().meldingFraOebs()
7177
} catch (e: Exception) {
7278
// Deal with invalid json in request
@@ -101,7 +107,7 @@ fun main() {
101107

102108
// Publish the received json to our rapid
103109
try {
104-
rapidApp!!.publish(ordrelinje.fnrBruker, Klaxon().toJsonString(melding))
110+
rapidApp!!.publish(ordrelinje.fnrBruker, mapper.writeValueAsString(melding))
105111
SensuMetrics().meldingTilRapidSuksess()
106112
} catch (e: Exception) {
107113
SensuMetrics().meldingTilRapidFeilet()
@@ -128,44 +134,3 @@ data class Message(
128134
val fnrBruker: String,
129135
val data: Statusinfo,
130136
)
131-
132-
data class Statusinfo(
133-
@Json(name = "System")
134-
val mottakendeSystem: String,
135-
@Json(name = "IncidentNummer")
136-
val serviceforespørsel: Int,
137-
@Json(name = "IncidentStatus")
138-
val serviceforespørselstatus: String,
139-
@Json(name = "IncidentType")
140-
val serviceforespørseltype: String,
141-
@Json(name = "IncidentSoknadType")
142-
valknadstype: String,
143-
@Json(name = "IncidentVedtakDato")
144-
val vedtaksdato: String,
145-
@Json(name = "IncidentSoknad")
146-
valknad: String,
147-
@Json(name = "IncidentResultat")
148-
val resultat: String,
149-
@Json(name = "IncidentRef")
150-
val saksblokkOgSaksnummer: String,
151-
@Json(name = "OrdreNumber")
152-
val ordrenummer: Int,
153-
@Json(name = "LineNumber")
154-
val ordrelinjenummer: Int,
155-
@Json(name = "ShipmentNumber")
156-
val delordrelinjenummer: Int,
157-
@Json(name = "Description")
158-
val artikkelbeskrivelse: String,
159-
@Json(name = "CategoryDescription")
160-
val produktgruppe: String,
161-
@Json(name = "OrderedItem")
162-
val artikkel: Int,
163-
@Json(name = "User_ItemType")
164-
val hjelpemiddeltype: String,
165-
@Json(name = "Quantity")
166-
val antall: Int,
167-
@Json(name = "AccountNumber")
168-
val fnrBruker: String,
169-
@Json(name = "LastUpdateDate")
170-
val sistOppdatert: String,
171-
)
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package no.nav.hjelpemidler.model
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty
4+
import java.time.LocalDate
5+
6+
data class Statusinfo(
7+
@JsonProperty("System")
8+
val mottakendeSystem: String,
9+
10+
@JsonProperty("IncidentNummer")
11+
val serviceforespørsel: Int,
12+
13+
@JsonProperty("IncidentStatus")
14+
val serviceforespørselstatus: String,
15+
16+
@JsonProperty("IncidentType")
17+
val serviceforespørseltype: String,
18+
19+
@JsonProperty("IncidentSoknadType")
20+
valknadstype: String,
21+
22+
@JsonProperty("IncidentVedtakDato")
23+
val vedtaksdato: LocalDate,
24+
25+
@JsonProperty("IncidentSoknad")
26+
valknad: String,
27+
28+
@JsonProperty("IncidentResultat")
29+
val resultat: String,
30+
31+
@JsonProperty("IncidentRef")
32+
val saksblokkOgSaksnummer: String,
33+
34+
@JsonProperty("OrdreNumber")
35+
val ordrenummer: Int,
36+
37+
@JsonProperty("LineNumber")
38+
val ordrelinjenummer: Int,
39+
40+
@JsonProperty("ShipmentNumber")
41+
val delordrelinjenummer: Int,
42+
43+
@JsonProperty("Description")
44+
val artikkelbeskrivelse: String,
45+
46+
@JsonProperty("CategoryDescription")
47+
val produktgruppe: String,
48+
49+
@JsonProperty("OrderedItem")
50+
val artikkel: Int,
51+
52+
@JsonProperty("User_ItemType")
53+
val hjelpemiddeltype: String,
54+
55+
@JsonProperty("Quantity")
56+
val antall: Int,
57+
58+
@JsonProperty("AccountNumber")
59+
val fnrBruker: String,
60+
61+
@JsonProperty("LastUpdateDate")
62+
val sistOppdatert: LocalDate,
63+
)

0 commit comments

Comments
 (0)