package com.kmalbz import com.kmalbz.api.route.OutputServiceRDBServer import io.ktor.application.* import io.ktor.response.* import io.ktor.routing.* import io.ktor.http.* import io.ktor.features.* import org.apache.http.HttpException import com.kmalbz.database.DatabaseFactory import com.kmalbz.database.dao.ResultObjects import io.ktor.serialization.* import io.ktor.util.KtorExperimentalAPI import org.jetbrains.exposed.sql.SchemaUtils import org.jetbrains.exposed.sql.transactions.transaction import org.koin.ktor.ext.Koin fun main(args: Array): Unit = io.ktor.server.netty.EngineMain.main(args) @KtorExperimentalAPI @Suppress("unused") // Referenced in application.conf fun Application.module() { install(ContentNegotiation) { json() } install(Koin) { printLogger() modules(com.kmalbz.di.injectionModule) } DatabaseFactory.init() transaction{ SchemaUtils.create(ResultObjects) } routing { install(StatusPages) { exception { call.respond(HttpStatusCode.BadRequest) } exception { call.respond(HttpStatusCode.NotAcceptable) } } OutputServiceRDBServer().apply { registerOutput() } } }