Add configuration environment
This commit is contained in:
@@ -32,7 +32,7 @@ fun main() {
|
||||
val config by kodein.instance<Config>()
|
||||
val logger by kodein.instance<Logger>()
|
||||
logger.info("Running application with configuration $config")
|
||||
logger.info("Kodein bindings\n${kodein.container.tree.bindings.description()}")
|
||||
logger.debug("Kodein bindings\n${kodein.container.tree.bindings.description()}")
|
||||
val migration by kodein.instance<Migration>()
|
||||
migration.migrate()
|
||||
serve(kodein)
|
||||
@@ -58,20 +58,8 @@ fun serve(kodein: Kodein) {
|
||||
fun Application.module() {
|
||||
loadFeatures(kodein)
|
||||
|
||||
log.debug(kodein.container.tree.bindings.description())
|
||||
|
||||
routing {
|
||||
registerRoutes(kodein)
|
||||
}
|
||||
|
||||
val root = feature(Routing)
|
||||
val allRoutes = allRoutes(root)
|
||||
allRoutes.forEach {
|
||||
println(it.toString())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun allRoutes(root: Route): List<Route> {
|
||||
return listOf(root) + root.children.flatMap { allRoutes(it) }
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import org.kodein.di.Kodein
|
||||
import org.kodein.di.generic.bind
|
||||
import org.kodein.di.generic.instance
|
||||
import org.kodein.di.generic.singleton
|
||||
import org.kodein.di.generic.with
|
||||
import java.util.concurrent.TimeUnit
|
||||
import javax.sql.DataSource
|
||||
|
||||
@@ -16,7 +17,11 @@ import javax.sql.DataSource
|
||||
* [Kodein] controller module containing the app configuration
|
||||
*/
|
||||
val configurationModule = Kodein.Module(name = "Configuration") {
|
||||
bind() from singleton { ConfigLoader().loadConfigOrThrow<Config>("/application.yaml") }
|
||||
constant("config file") with "/application.dev.yaml" // FIXME
|
||||
bind() from singleton {
|
||||
val configFile by this.kodein.instance<String>(tag = "config file")
|
||||
ConfigLoader().loadConfigOrThrow<Config>(configFile)
|
||||
}
|
||||
bind<SimpleJWT>(tag = "auth") with singleton { configureAuthJwt(this.kodein) }
|
||||
bind<SimpleJWT>(tag = "refresh") with singleton { configureRefreshJwt(this.kodein) }
|
||||
bind<DataSource>() with singleton { configureDatasource(this.kodein) }
|
||||
@@ -58,4 +63,4 @@ private fun configureDatasource(kodein: Kodein): DataSource {
|
||||
}
|
||||
|
||||
return HikariDataSource(hikariConfig)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user