From c47685b5d97b63bf938917f62b6caf0ee0bbbbc8 Mon Sep 17 00:00:00 2001 From: Markus Johansen Date: Mon, 17 Jul 2023 16:11:35 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Innsendt=20feilmelding?= =?UTF-8?q?=20sendes=20videre=20fra=20backend=20til=20database?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sindre Kjelsrud Co-authored-by: Amalie Mansåker --- .../helse/sprik/db/FeilmeldingRepository.kt | 11 ++++++---- .../no/nav/helse/sprik/modell/Feilmelding.kt | 22 +++++-------------- .../no/nav/helse/sprik/plugins/Routing.kt | 10 ++++++--- .../sprik/serializers/LocalDateSerializer.kt | 8 ------- .../serializers/LocalDateTimeSerializer.kt | 8 +++++++ .../no/nav/helse/sprik/FeilmeldingTest.kt | 11 +++++----- 6 files changed, 34 insertions(+), 36 deletions(-) delete mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateSerializer.kt create mode 100644 backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateTimeSerializer.kt diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt index ad368ac..ea71c6e 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt @@ -1,19 +1,22 @@ package no.nav.helse.sprik.db +import no.nav.helse.sprik.modell.Feilmelding import org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.transactions.transaction import java.time.LocalDateTime class FeilmeldingRepository { - fun lagre(tittel: String, beskrivelse: String, dato: LocalDateTime){ + fun lagre(feilmelding: Feilmelding){ transaction { FeilmeldingTable.run { insert { - it[FeilmeldingTable.tittel] = tittel - it[FeilmeldingTable.beskrivelse] = beskrivelse - it[FeilmeldingTable.dato] = dato + it[FeilmeldingTable.tittel] = feilmelding.tittel + it[FeilmeldingTable.beskrivelse] = feilmelding.beskrivelse + it[FeilmeldingTable.dato] = feilmelding.dato } } } } + + } \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt index ec72c75..496c9a8 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt @@ -1,14 +1,12 @@ @file:UseSerializers( - LocalDateSerializer::class + LocalDateTimeSerializer::class ) package no.nav.helse.sprik.modell import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers -import no.nav.helse.sprik.serializers.LocalDateSerializer -import java.time.LocalDate - - +import no.nav.helse.sprik.serializers.LocalDateTimeSerializer +import java.time.LocalDateTime /** @@ -19,19 +17,11 @@ class Feilmelding( val tittel: String, val beskrivelse: String, - @Serializable(LocalDateSerializer::class) - val dato: LocalDate? = null, //Krever en spesiallaget serialiserer i KotlinX - val tags: ArrayList = arrayListOf() + @Serializable(LocalDateTimeSerializer::class) + val dato: LocalDateTime, //Krever en spesiallaget serialiserer i KotlinX + //val tags: ArrayList = arrayListOf() //val bilde: String, ) { - fun addTag(tagText: String){ - tags.add(tagText) - } - - fun removeTag(tagText: String){ - tags.removeAt(tags.indexOf(tagText)) - } - override fun toString(): String { return "Feilmelding(\n${tittel}\n${beskrivelse}\n)" } diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt index 551c45b..cdc7a07 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/plugins/Routing.kt @@ -12,9 +12,13 @@ import io.ktor.server.http.content.* import io.ktor.server.plugins.cors.routing.* import io.ktor.server.request.* import no.nav.helse.sprik.Test +import no.nav.helse.sprik.db.FeilmeldingRepository import no.nav.helse.sprik.modell.Feilmelding fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngineEnvironment { + //Repositories for handlinger mot database: + val feilmeldingRepository = FeilmeldingRepository() + module { install(CORS) { anyHost() @@ -45,9 +49,9 @@ fun configureRouting(): ApplicationEngine = embeddedServer(CIO, applicationEngin call.respond(status = HttpStatusCode.Created, message = test) } post("/nyFeil") { - val test = call.receive() - println(test) - call.respond(status = HttpStatusCode.Created, message = test) + val feilmelding = call.receive() + feilmeldingRepository.lagre(feilmelding) + call.respond(status = HttpStatusCode.Created, message = "Feilmelding motatt og sendt til database") } } } diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateSerializer.kt b/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateSerializer.kt deleted file mode 100644 index 831e9a2..0000000 --- a/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateSerializer.kt +++ /dev/null @@ -1,8 +0,0 @@ -package no.nav.helse.sprik.serializers - -import java.time.LocalDate - -object LocalDateSerializer : AsStringSerializer( - serialName = "Sprik.kotlinx.LocalDateSerializer", - parse = LocalDate::parse -) \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateTimeSerializer.kt b/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateTimeSerializer.kt new file mode 100644 index 0000000..c211f38 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/serializers/LocalDateTimeSerializer.kt @@ -0,0 +1,8 @@ +package no.nav.helse.sprik.serializers + +import java.time.LocalDateTime + +object LocalDateTimeSerializer : AsStringSerializer( + serialName = "Sprik.kotlinx.LocalDateTimeSerializer", + parse = LocalDateTime::parse +) \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt index 1759de1..1572c50 100644 --- a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -4,6 +4,7 @@ import com.zaxxer.hikari.HikariConfig import no.nav.helse.sprik.db.Database import no.nav.helse.sprik.db.FeilmeldingRepository import no.nav.helse.sprik.db.FeilmeldingTable +import no.nav.helse.sprik.modell.Feilmelding import org.jetbrains.exposed.sql.deleteAll import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.transaction @@ -21,6 +22,7 @@ import org.jetbrains.exposed.sql.Database as ExposedDatabase class FeilmeldingTest { private val database = Database(dbconfig()).configureFlyway() private val feilmeldingRepository = FeilmeldingRepository() + private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0)) @BeforeAll fun setup() { @@ -34,7 +36,7 @@ class FeilmeldingTest { } @Test fun `Sett opp testdatabasen riktig`(){ - feilmeldingRepository.lagre("Hællæ", "skjera bagera", LocalDateTime.of(2023,1,1,8,0)) + feilmeldingRepository.lagre(feilmelding) transaction { assertEquals(1, FeilmeldingTable.selectAll().map { it @@ -44,13 +46,12 @@ class FeilmeldingTest { @Test fun `Lagrer feilmelding i databasen`() { - feilmeldingRepository.lagre("test", "testesen", LocalDateTime.of(2023,1,1,8,0)) + feilmeldingRepository.lagre(feilmelding) transaction { val actual = FeilmeldingTable.selectAll().single() - assertEquals("test", actual[FeilmeldingTable.tittel]) - assertEquals("testesen", actual[FeilmeldingTable.beskrivelse]) + assertEquals("Test", actual[FeilmeldingTable.tittel]) + assertEquals("Testesen", actual[FeilmeldingTable.beskrivelse]) assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), actual[FeilmeldingTable.dato]) } } - } \ No newline at end of file