Skip to content

Commit

Permalink
tester ut tbd-sql
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsteinsland committed Feb 22, 2025
1 parent 620937a commit 44dc2b5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
3 changes: 2 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,15 @@ dependencyResolutionManagement {
library("postgresql", "org.postgresql", "postgresql").versionRef("postgres")
library("hikari", "com.zaxxer", "HikariCP").versionRef("hikari")
library("kotliquery", "com.github.seratch", "kotliquery").versionRef("kotliquery")
library("tbd-sql", "com.github.navikt.tbd-libs", "sql-dsl").version("2025.02.14-08.59-4f6db7fb")

library("cloudsql", "com.google.cloud.sql", "postgres-socket-factory").versionRef("cloudsql")
library("flyway-postgres", "org.flywaydb", "flyway-database-postgresql").versionRef("flyway")

library("testcontainers", "org.testcontainers", "postgresql").versionRef("testcontainers")

bundle("flyway", listOf("flyway-postgres"))
bundle("database", listOf("postgresql", "hikari", "kotliquery"))
bundle("database", listOf("postgresql", "hikari", "kotliquery", "tbd-sql"))

bundle("jackson", listOf("jackson-kotlin", "jackson-datatype"))
bundle("logging", listOf("logback", "logstash"))
Expand Down
22 changes: 16 additions & 6 deletions sykepenger-mediators/src/test/kotlin/no/nav/helse/Personeditor.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package no.nav.helse

import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.github.navikt.tbd_libs.sql_dsl.connection
import com.github.navikt.tbd_libs.sql_dsl.firstOrNull
import com.github.navikt.tbd_libs.sql_dsl.transaction
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import java.io.File
import java.nio.file.Files
import java.nio.file.Path
import java.time.LocalDateTime
import java.util.*
import kotliquery.queryOf
import kotliquery.sessionOf
import no.nav.helse.serde.SerialisertPerson
import org.skyscreamer.jsonassert.JSONCompare
import org.skyscreamer.jsonassert.JSONCompareMode
Expand Down Expand Up @@ -58,9 +59,14 @@ internal object Personeditor {
val backupfil = File("${backupsdirectory}/$id.json")
val resultatfil = File("${workingdirectory}/$id.json")

sessionOf(dataSource(jdbcUrl)).use {
it.transaction { tx ->
val data = tx.run(queryOf("SELECT * FROM person where fnr=:fnr FOR UPDATE;", mapOf("fnr" to fødselsnummer.toLong())).map { row -> row.string("data") }.asSingle) ?: error("❌ Fant ikke person med fnr $fødselsnummer")
dataSource(jdbcUrl).connection {
transaction {
val data = prepareStatement("SELECT data FROM person where fnr=? FOR UPDATE;").use { stmt ->
stmt.setLong(1, fødselsnummer.toLong())
stmt.executeQuery().use { rs ->
rs.firstOrNull { row -> row.getString("data") }
}
} ?: error("❌ Fant ikke person med fnr $fødselsnummer")
with(backupfil) {
createNewFile()
writeText(data)
Expand Down Expand Up @@ -88,7 +94,11 @@ internal object Personeditor {

VidereVedJa("Ser endringene bra ut? Nå er det no way back om du sier ja ⚠️", default = false)

tx.run(queryOf("UPDATE person SET data=:data WHERE fnr=:fnr", mapOf("data" to resultat, "fnr" to fødselsnummer.toLong())).asUpdate)
check(1 == prepareStatement("UPDATE person SET data=? WHERE fnr=?").use { stmt ->
stmt.setString(1, resultat)
stmt.setLong(2, fødselsnummer.toLong())
stmt.executeUpdate()
}) { "forventet å oppdatere nøyaktig én rad" }

println(" - Endringene dine er live ✅")
}
Expand Down

0 comments on commit 44dc2b5

Please sign in to comment.