diff --git a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/module/APIModule.kt b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/module/APIModule.kt index 75ddf19d7..486416e09 100644 --- a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/module/APIModule.kt +++ b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/module/APIModule.kt @@ -5,18 +5,11 @@ import com.oztechan.ccc.backend.app.routes.currency import com.oztechan.ccc.backend.app.routes.error import com.oztechan.ccc.backend.app.routes.root import com.oztechan.ccc.backend.app.routes.version -import com.oztechan.ccc.backend.controller.api.APIController -import com.oztechan.ccc.common.core.infrastructure.di.DISPATCHER_IO import io.ktor.serialization.kotlinx.json.json import io.ktor.server.application.Application import io.ktor.server.application.install import io.ktor.server.plugins.contentnegotiation.ContentNegotiation import io.ktor.server.routing.routing -import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.launch -import org.koin.core.qualifier.named -import org.koin.ktor.ext.inject @Suppress("unused") internal fun Application.apiModule() { @@ -26,16 +19,10 @@ internal fun Application.apiModule() { json() } - val apiController: APIController by inject() - val globalScope: CoroutineScope by inject() - val ioDispatcher: CoroutineDispatcher by inject(named(DISPATCHER_IO)) - routing { - globalScope.launch(ioDispatcher) { - root(ioDispatcher) - currency(apiController, ioDispatcher) - version(ioDispatcher) - error(ioDispatcher) - } + root() + currency() + version() + error() } } diff --git a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/CurrencyRoute.kt b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/CurrencyRoute.kt index 94fa68f87..48b6ecfa2 100644 --- a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/CurrencyRoute.kt +++ b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/CurrencyRoute.kt @@ -6,6 +6,7 @@ package com.oztechan.ccc.backend.app.routes import co.touchlab.kermit.Logger import com.oztechan.ccc.backend.controller.api.APIController +import com.oztechan.ccc.common.core.infrastructure.di.DISPATCHER_IO import io.ktor.http.HttpStatusCode import io.ktor.server.application.call import io.ktor.server.response.respond @@ -13,14 +14,16 @@ import io.ktor.server.routing.Route import io.ktor.server.routing.get import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext +import org.koin.core.qualifier.named +import org.koin.ktor.ext.inject private const val PATH_BY_BASE = "/currency/byBase/" private const val PARAMETER_BASE = "base" -internal fun Route.currency( - apiController: APIController, - ioDispatcher: CoroutineDispatcher -) { +internal fun Route.currency() { + val apiController: APIController by inject() + val ioDispatcher: CoroutineDispatcher by inject(named(DISPATCHER_IO)) + get(PATH_BY_BASE) { Logger.v { "GET Request $PATH_BY_BASE" } diff --git a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/ErrorRoute.kt b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/ErrorRoute.kt index 81806c7a2..65c57cf98 100644 --- a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/ErrorRoute.kt +++ b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/ErrorRoute.kt @@ -5,6 +5,7 @@ package com.oztechan.ccc.backend.app.routes import co.touchlab.kermit.Logger +import com.oztechan.ccc.common.core.infrastructure.di.DISPATCHER_IO import io.ktor.http.ContentType import io.ktor.http.HttpStatusCode import io.ktor.server.application.call @@ -14,11 +15,15 @@ import io.ktor.server.routing.Route import io.ktor.server.routing.get import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext +import org.koin.core.qualifier.named +import org.koin.ktor.ext.inject private const val PATH_ERROR = "/error" private const val ERROR_HTML = "error.html" -internal fun Route.error(ioDispatcher: CoroutineDispatcher) { +internal fun Route.error() { + val ioDispatcher: CoroutineDispatcher by inject(named(DISPATCHER_IO)) + get(PATH_ERROR) { Logger.v { "GET Request $PATH_ERROR" } diff --git a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/RootRoute.kt b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/RootRoute.kt index 282cb0cd4..58f9ba7b4 100644 --- a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/RootRoute.kt +++ b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/RootRoute.kt @@ -5,6 +5,7 @@ package com.oztechan.ccc.backend.app.routes import co.touchlab.kermit.Logger +import com.oztechan.ccc.common.core.infrastructure.di.DISPATCHER_IO import io.ktor.http.ContentType import io.ktor.http.HttpStatusCode import io.ktor.server.application.call @@ -14,11 +15,15 @@ import io.ktor.server.routing.Route import io.ktor.server.routing.get import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext +import org.koin.core.qualifier.named +import org.koin.ktor.ext.inject private const val PATH_ROOT = "/" private const val INDEX_HTML = "index.html" -internal fun Route.root(ioDispatcher: CoroutineDispatcher) { +internal fun Route.root() { + val ioDispatcher: CoroutineDispatcher by inject(named(DISPATCHER_IO)) + get(PATH_ROOT) { Logger.v { "GET Request $PATH_ROOT" } diff --git a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/VersionRoute.kt b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/VersionRoute.kt index 49f8a7b39..09084ca75 100644 --- a/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/VersionRoute.kt +++ b/backend/app/src/main/kotlin/com/oztechan/ccc/backend/app/routes/VersionRoute.kt @@ -1,6 +1,7 @@ package com.oztechan.ccc.backend.app.routes import co.touchlab.kermit.Logger +import com.oztechan.ccc.common.core.infrastructure.di.DISPATCHER_IO import io.ktor.http.ContentType import io.ktor.http.HttpStatusCode import io.ktor.server.application.call @@ -10,10 +11,14 @@ import io.ktor.server.routing.Route import io.ktor.server.routing.get import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.withContext +import org.koin.core.qualifier.named +import org.koin.ktor.ext.inject private const val PATH_VERSION = "/version" -internal fun Route.version(ioDispatcher: CoroutineDispatcher) { +internal fun Route.version() { + val ioDispatcher: CoroutineDispatcher by inject(named(DISPATCHER_IO)) + get(PATH_VERSION) { Logger.v { "GET Request $PATH_VERSION" }