Skip to content

Commit 50c2f5a

Browse files
committed
tester for alle API-endepunkter
1 parent 7195183 commit 50c2f5a

26 files changed

+910
-279
lines changed

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/Application.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ fun Application.module() {
6161
tokenX()
6262
}
6363

64-
install(ContentNegotiation) {
65-
register(ContentType.Application.Json, JacksonConverter(jsonMapper))
66-
}
64+
jackson()
6765

6866
install(CallLogging) {
6967
level = Level.TRACE
@@ -93,3 +91,9 @@ fun Application.module() {
9391
}
9492
}
9593
}
94+
95+
fun Application.jackson() {
96+
install(ContentNegotiation) {
97+
register(ContentType.Application.Json, JacksonConverter(jsonMapper))
98+
}
99+
}

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/AzureADRoutes.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package no.nav.hjelpemidler.soknad.db
33
import io.github.oshai.kotlinlogging.KotlinLogging
44
import io.ktor.http.HttpStatusCode
55
import io.ktor.server.application.call
6+
import io.ktor.server.plugins.BadRequestException
67
import io.ktor.server.request.receive
78
import io.ktor.server.response.respond
89
import io.ktor.server.routing.Route
@@ -219,16 +220,7 @@ fun Route.azureADRoutes(
219220
try {
220221
val søknadId = call.søknadId
221222
val søknadFinnes = transaction { søknadStore.søknadFinnes(søknadId) }
222-
223-
when {
224-
søknadFinnes -> {
225-
call.respond("soknadFinnes" to true)
226-
}
227-
228-
else -> {
229-
call.respond("soknadFinnes" to false)
230-
}
231-
}
223+
call.respond("soknadFinnes" to søknadFinnes)
232224
} catch (e: Exception) {
233225
logg.error(e) { "Feilet ved henting av søknad" }
234226
call.respond(HttpStatusCode.BadRequest, "Feilet ved henting av søknad")
@@ -334,7 +326,7 @@ fun Route.azureADRoutes(
334326
}
335327

336328
get("/soknad/utgaatt/{dager}") {
337-
val dager = call.parameters["dager"]?.toInt() ?: throw RuntimeException("Parameter 'dager' var ugyldig")
329+
val dager = call.parameters["dager"]?.toInt() ?: throw BadRequestException("Parameter 'dager' var ugyldig")
338330

339331
try {
340332
val soknaderTilGodkjenningEldreEnn = transaction { søknadStore.hentSoknaderTilGodkjenningEldreEnn(dager) }

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/Json.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
package no.nav.hjelpemidler.soknad.db
22

3+
import com.fasterxml.jackson.core.StreamReadFeature
34
import com.fasterxml.jackson.core.type.TypeReference
45
import com.fasterxml.jackson.databind.DeserializationFeature
56
import com.fasterxml.jackson.databind.SerializationFeature
67
import com.fasterxml.jackson.databind.json.JsonMapper
78
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
89
import com.fasterxml.jackson.module.kotlin.jacksonMapperBuilder
10+
import no.nav.hjelpemidler.configuration.Environment
911

1012
val jsonMapper: JsonMapper = jacksonMapperBuilder()
1113
.addModule(JavaTimeModule())
1214
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
1315
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
16+
.configure(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION, !Environment.current.tier.isProd)
1417
.build()
1518

1619
class DatabaseJsonMapper : no.nav.hjelpemidler.database.JsonMapper {

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/domain/VedtaksresultatData.kt

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

3+
import com.fasterxml.jackson.annotation.JsonIgnore
34
import java.time.LocalDate
45
import java.util.UUID
56

@@ -12,6 +13,13 @@ data class VedtaksresultatData(
1213
val vedtaksresultat: String? = null,
1314
val vedtaksdato: LocalDate? = null,
1415
) {
16+
val saksblokkOgSaksnr: String?
17+
@JsonIgnore get() =
18+
if (saksblokk.isNullOrBlank() || saksnr.isNullOrBlank()) {
19+
null
20+
} else {
21+
"$saksblokk$saksnr"
22+
}
1523

1624
companion object {
1725
fun getTrygdekontorNrFromFagsakId(fagsakId: String): String {

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/domain/kommuneapi/Valideringsmodell.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ package no.nav.hjelpemidler.soknad.db.domain.kommuneapi
33
import com.fasterxml.jackson.annotation.JsonAlias
44
import com.fasterxml.jackson.annotation.JsonInclude
55
import com.fasterxml.jackson.annotation.JsonValue
6+
import com.fasterxml.jackson.core.StreamReadFeature
67
import com.fasterxml.jackson.databind.DeserializationFeature
78
import com.fasterxml.jackson.databind.JsonNode
89
import com.fasterxml.jackson.databind.SerializationFeature
910
import com.fasterxml.jackson.databind.json.JsonMapper
1011
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
1112
import com.fasterxml.jackson.module.kotlin.jacksonMapperBuilder
1213
import com.fasterxml.jackson.module.kotlin.readValue
14+
import no.nav.hjelpemidler.configuration.Environment
1315
import no.nav.hjelpemidler.soknad.db.domain.BrukersituasjonVilkår
1416
import no.nav.hjelpemidler.soknad.db.domain.Bruksarena
1517
import no.nav.hjelpemidler.soknad.db.domain.HøyGrindValg
@@ -54,6 +56,7 @@ data class Behovsmelding(
5456
// Skal feile hvis man har ukjente verdier i JsonNode, da må denne vedlikeholdes og hva som deles med
5557
// kommunen revurderes!
5658
.enable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
59+
.configure(StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION, !Environment.current.tier.isProd)
5760
.build()
5861

5962
fun fraJsonNode(node: JsonNode): Behovsmelding {

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/grunndata/GrunndataClient.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import io.ktor.client.engine.apache.Apache
88
import no.nav.hjelpemidler.soknad.db.Configuration
99
import no.nav.hjelpemidler.soknad.db.client.hmdb.HentProdukterMedHmsnrs
1010
import java.net.URI
11-
import no.nav.hjelpemidler.soknad.db.client.hmdb.hentproduktermedhmsnrs.Product as HentproduktermedhmsnrsProdukt
11+
import no.nav.hjelpemidler.soknad.db.client.hmdb.hentproduktermedhmsnrs.Product as HentProdukterMedHmsnrsProdukt
1212

1313
private val logg = KotlinLogging.logger {}
1414

@@ -19,7 +19,7 @@ class GrunndataClient {
1919
serializer = GraphQLClientJacksonSerializer(),
2020
)
2121

22-
suspend fun hentProdukterMedHmsnrs(hmsnrs: Set<String>): List<HentproduktermedhmsnrsProdukt> {
22+
suspend fun hentProdukterMedHmsnrs(hmsnrs: Set<String>): List<HentProdukterMedHmsnrsProdukt> {
2323
if (hmsnrs.isEmpty()) return emptyList()
2424
logg.debug { "Henter produkter med hmsnrs: $hmsnrs fra hjelpemiddeldatabasen" }
2525
val request = HentProdukterMedHmsnrs(variables = HentProdukterMedHmsnrs.Variables(hmsnrs = hmsnrs.toList()))

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/rolle/RolleClient.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import kotlinx.coroutines.Dispatchers
1010
import kotlinx.coroutines.withContext
1111
import no.nav.hjelpemidler.http.createHttpClient
1212
import no.nav.hjelpemidler.soknad.db.Configuration
13+
import no.nav.hjelpemidler.soknad.db.jsonMapper
1314
import no.nav.tms.token.support.tokendings.exchange.TokendingsService
1415

1516
private val logg = KotlinLogging.logger { }
@@ -19,7 +20,7 @@ class RolleClient(
1920
private val url: String = Configuration.HM_ROLLER_URL,
2021
private val audience: String = Configuration.HM_ROLLER_AUDIENCE,
2122
) {
22-
private val client: HttpClient = createHttpClient(Apache.create())
23+
private val client: HttpClient = createHttpClient(Apache.create(), jsonMapper)
2324

2425
suspend fun hentRolle(token: String): RolleResultat {
2526
return try {

app/src/main/kotlin/no/nav/hjelpemidler/soknad/db/store/SøknadStore.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -664,14 +664,14 @@ class SøknadStorePostgres(private val tx: JdbcOperations) : SøknadStore {
664664
$extraWhere2
665665
ORDER BY CREATED ASC
666666
;
667-
"""
667+
""".trimIndent()
668668

669669
return time("hentSoknaderForKommuneApiet") {
670670
tx.list(
671671
statement,
672672
mapOf(
673673
"kommunenummer" to kommunenummer,
674-
"kommunenummerJson" to pgJsonbOf(mapOf("kommunenummer" to kommunenummer)),
674+
"kommunenummerJson" to pgJsonbOf(listOf(mapOf("kommunenummer" to kommunenummer))),
675675
"nyereEnn" to nyereEnn,
676676
"nyereEnnTidsstempel" to nyereEnnTidsstempel?.let { nyereEnnTidsstempel ->
677677
LocalDateTime.ofInstant(

0 commit comments

Comments
 (0)