Configure database inside api

This commit is contained in:
2020-04-11 23:33:21 +02:00
parent 49a3d47653
commit 37fa8cd17e
4 changed files with 50 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
package be.vandewalleh.features
import io.ktor.application.Application
import org.kodein.di.Kodein
import org.kodein.di.generic.bind
import org.kodein.di.generic.instance
import org.mariadb.jdbc.MariaDbDataSource
import javax.sql.DataSource
/**
* [Kodein] configuration module
*/
lateinit var configurationModule: Kodein.Module
fun Application.configurationFeature() {
val dataSource: DataSource = with(environment.config) {
val host = property("database.host").getString()
val port = property("database.port").getString()
val name = property("database.name").getString()
val user = property("database.user").getString()
val password = property("database.password").getString()
val url = "jdbc:mariadb://$host:$port/$name"
MariaDbDataSource(url).apply {
this.user = user
setPassword(password)
}
}
configurationModule = Kodein.Module("Configuration") {
bind<DataSource>() with instance(dataSource)
}
}
+1
View File
@@ -6,4 +6,5 @@ fun Application.features() {
locationFeature()
corsFeature()
contentNegotiationFeature()
configurationFeature()
}