bitkid
07/09/2019, 9:44 PMDatabase.connect(datasource = HikariDataSource(poolConfig),
manager = { ThreadLocalTransactionManager(it, Connection.TRANSACTION_REPEATABLE_READ, 0) })
suspend fun <T> dbTransaction(database: Database, block: () -> T): TransactionResult<T> =
suspendedTransactionAsync(<http://Dispatchers.IO|Dispatchers.IO>, database, false) {
block()
}
fun Route.logIn(database: Database, sessionHandler: SessionHandler) {
post<Login> {
val response = dbTransaction(database) {
sessionHandler.login(data)
}.await()
call.respond(response)
}
}
tapac
07/11/2019, 4:25 PM