Skip to content

Commit b4d9097

Browse files
committed
Oppdatert tolking av miljøvariabler for JDBC URL
1 parent 067b9fe commit b4d9097

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
host = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_HOST}"
2-
port = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_PORT}"
3-
username = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_USERNAME}"
4-
password = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_PASSWORD}"
5-
database = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_DATABASE}"
1+
jdbcUrl = "${NAIS_DATABASE_PAW_ARBEIDSSOEKERREGISTERET_API_BEKREFTELSE_BEKREFTELSER_JDBC_URL}"

Diff for: lib/database/src/main/kotlin/no/nav/paw/database/config/DatabaseConfig.kt

+23-6
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,33 @@ import java.time.Duration
55
const val DATABASE_CONFIG = "database_config.toml"
66

77
data class DatabaseConfig(
8-
val host: String,
9-
val port: Int,
10-
val username: String,
11-
val password: String,
12-
val database: String,
8+
val jdbcUrl: String?,
9+
val url: String?,
10+
val host: String?,
11+
val port: Int?,
12+
val username: String?,
13+
val password: String?,
14+
val database: String?,
1315
val autoCommit: Boolean = true,
1416
val maximumPoolSize: Int = 3,
1517
val connectionTimeout: Duration = Duration.ofSeconds(30),
1618
val idleTimeout: Duration = Duration.ofMinutes(10),
1719
val maxLifetime: Duration = Duration.ofMinutes(30)
1820
) {
19-
val url get() = "jdbc:postgresql://$host:$port/$database?user=$username&password=$password"
21+
fun buildJdbcUrl(): String {
22+
return if (jdbcUrl != null) {
23+
require(jdbcUrl.isBlank()) { "JDBC URL er tom" }
24+
jdbcUrl
25+
} else if (url != null) {
26+
require(url.isBlank()) { "URL er tom" }
27+
"jdbc:$url"
28+
} else {
29+
require(!host.isNullOrBlank()) { "Host er ikke satt" }
30+
requireNotNull(port) { "Port er ikke satt" }
31+
require(!username.isNullOrBlank()) { "Username er ikke satt" }
32+
require(!password.isNullOrBlank()) { "Password er ikke satt" }
33+
require(!database.isNullOrBlank()) { "Database er ikke satt" }
34+
"jdbc:postgresql://$host:$port/$database?user=$username&password=$password"
35+
}
36+
}
2037
}

Diff for: lib/database/src/main/kotlin/no/nav/paw/database/factory/DataSourceFactory.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import no.nav.paw.database.config.DatabaseConfig
77
fun createHikariDataSource(databaseConfig: DatabaseConfig): HikariDataSource =
88
HikariDataSource(
99
HikariConfig().apply {
10-
jdbcUrl = databaseConfig.url
10+
jdbcUrl = databaseConfig.buildJdbcUrl()
1111
maximumPoolSize = databaseConfig.maximumPoolSize
1212
isAutoCommit = databaseConfig.autoCommit
1313
connectionTimeout = databaseConfig.connectionTimeout.toMillis()

0 commit comments

Comments
 (0)