🗃️ Innsendt feilmelding sendes videre fra backend til database
Co-authored-by: Sindre Kjelsrud <sindre.kjelsrud@nav.no> Co-authored-by: Amalie Mansåker <amalie.erdal.mansaker@nav.no>
This commit is contained in:
parent
a5497cf536
commit
c47685b5d9
6 changed files with 34 additions and 36 deletions
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -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<String> = arrayListOf<String>()
|
||||
@Serializable(LocalDateTimeSerializer::class)
|
||||
val dato: LocalDateTime, //Krever en spesiallaget serialiserer i KotlinX
|
||||
//val tags: ArrayList<String> = arrayListOf<String>()
|
||||
//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)"
|
||||
}
|
||||
|
|
|
@ -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<Feilmelding>()
|
||||
println(test)
|
||||
call.respond(status = HttpStatusCode.Created, message = test)
|
||||
val feilmelding = call.receive<Feilmelding>()
|
||||
feilmeldingRepository.lagre(feilmelding)
|
||||
call.respond(status = HttpStatusCode.Created, message = "Feilmelding motatt og sendt til database")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
package no.nav.helse.sprik.serializers
|
||||
|
||||
import java.time.LocalDate
|
||||
|
||||
object LocalDateSerializer : AsStringSerializer<LocalDate>(
|
||||
serialName = "Sprik.kotlinx.LocalDateSerializer",
|
||||
parse = LocalDate::parse
|
||||
)
|
|
@ -0,0 +1,8 @@
|
|||
package no.nav.helse.sprik.serializers
|
||||
|
||||
import java.time.LocalDateTime
|
||||
|
||||
object LocalDateTimeSerializer : AsStringSerializer<LocalDateTime>(
|
||||
serialName = "Sprik.kotlinx.LocalDateTimeSerializer",
|
||||
parse = LocalDateTime::parse
|
||||
)
|
|
@ -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])
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue