update creating case

This commit is contained in:
2020-11-30 14:13:39 +06:00
parent aba2152a84
commit 85faf0b850
3 changed files with 46 additions and 37 deletions

View File

@@ -1,23 +1,33 @@
package dev.inmo.postssystem.business_cases.post_creating.server
import dev.inmo.micro_utils.ktor.server.*
import dev.inmo.postssystem.core.post.RegisteredPost
import dev.inmo.micro_utils.ktor.server.unianswer
import dev.inmo.micro_utils.ktor.server.uniload
import io.ktor.application.call
import io.ktor.routing.*
import kotlinx.serialization.builtins.nullable
fun Route.configurePostCreatingRoutes(
origin: PostCreatingCase
private inline fun Route.configurePostCreatingRoutes(
origin: PostCreatingCase,
unifiedRouter: UnifiedRouter
) {
route(postCreatingRootRoute) {
post(postCreatingCreatePostRoute) {
val model = call.uniload(PostCreatingCreatePostModel.serializer())
post(postCreatingCreatePostRoute) {
unifiedRouter.apply {
val model = uniload(PostCreatingCreatePostModel.serializer())
call.unianswer(
unianswer(
RegisteredPost.serializer().nullable,
origin.createPost(model.postContent, model.triggerId)
)
}
}
}
fun Route.configurePostCreatingRoutes(
origin: PostCreatingCase,
unifiedRouter: UnifiedRouter,
subroute: String? = postCreatingRootRoute
) {
subroute ?.also {
route(subroute) { configurePostCreatingRoutes(origin, unifiedRouter) }
} ?: configurePostCreatingRoutes(origin, unifiedRouter)
}