update creating case
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user