🗃️ 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
	
	 Markus Johansen
						Markus Johansen