33 lines
1.3 KiB
Kotlin
33 lines
1.3 KiB
Kotlin
package dev.inmo.postssystem.publicators.simple.server
|
|
|
|
import dev.inmo.micro_utils.ktor.server.configurators.ApplicationRoutingConfigurator
|
|
import dev.inmo.micro_utils.ktor.server.unianswer
|
|
import dev.inmo.micro_utils.ktor.server.uniload
|
|
import dev.inmo.postssystem.features.posts.common.PostId
|
|
import dev.inmo.postssystem.features.publication.common.publicatorsRootPath
|
|
import dev.inmo.postssystem.features.publication.server.PublicationManager
|
|
import dev.inmo.postssystem.publicators.simple.common.simplePublicatorPublishPathPart
|
|
import dev.inmo.postssystem.publicators.simple.common.simplePublicatorRootPath
|
|
import io.ktor.server.application.call
|
|
import io.ktor.server.routing.*
|
|
import kotlinx.serialization.builtins.serializer
|
|
|
|
class SimplePublicatorRoutingConfigurator(
|
|
private val publicationManager: PublicationManager
|
|
) : ApplicationRoutingConfigurator.Element {
|
|
override fun Route.invoke() {
|
|
route(publicatorsRootPath) {
|
|
route(simplePublicatorRootPath) {
|
|
post(simplePublicatorPublishPathPart) {
|
|
val postId = call.uniload(PostId.serializer())
|
|
|
|
call.unianswer(
|
|
Unit.serializer(),
|
|
publicationManager.publish(postId)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|