publishing keys repo ktor server route now is optional

This commit is contained in:
InsanusMokrassar 2020-11-27 20:41:01 +06:00
parent b9f7d9e346
commit f5a5330e93

View File

@ -6,19 +6,25 @@ import dev.inmo.micro_utils.ktor.server.configurators.ApplicationRoutingConfigur
import io.ktor.routing.Route import io.ktor.routing.Route
import io.ktor.routing.route import io.ktor.routing.route
fun Route.configurePublishingKeysRepoRoutes ( private inline fun configurator(proxyTo: PublishingKeysRepo): Route.() -> Unit = {
proxyTo: PublishingKeysRepo
) {
route(publishingKeysRootRoute) {
configureReadPublishingKeysRepoRoutes(proxyTo) configureReadPublishingKeysRepoRoutes(proxyTo)
configureWritePublishingKeysRepoRoutes(proxyTo) configureWritePublishingKeysRepoRoutes(proxyTo)
} }
fun Route.configurePublishingKeysRepoRoutes (
proxyTo: PublishingKeysRepo,
rootRoute: String? = publishingKeysRootRoute
) {
rootRoute ?.also {
route(it, configurator(proxyTo))
} ?: configurator(proxyTo).invoke(this)
} }
class PublishingKeysRepoRoutingConfigurator ( class PublishingKeysRepoRoutingConfigurator (
private val proxyTo: PublishingKeysRepo private val proxyTo: PublishingKeysRepo,
private val rootRoute: String? = publishingKeysRootRoute
) : ApplicationRoutingConfigurator.Element { ) : ApplicationRoutingConfigurator.Element {
override fun Route.invoke() { override fun Route.invoke() {
configurePublishingKeysRepoRoutes(proxyTo) configurePublishingKeysRepoRoutes(proxyTo, rootRoute)
} }
} }