34 lines
1.0 KiB
Kotlin
34 lines
1.0 KiB
Kotlin
package dev.inmo.postssystem.business_cases.post_creating.server
|
|
|
|
import dev.inmo.micro_utils.ktor.server.*
|
|
import dev.inmo.postssystem.core.post.RegisteredPost
|
|
import io.ktor.application.call
|
|
import io.ktor.routing.*
|
|
import kotlinx.serialization.builtins.nullable
|
|
|
|
private inline fun Route.configurePostCreatingRoutes(
|
|
origin: PostCreatingCase,
|
|
unifiedRouter: UnifiedRouter
|
|
) {
|
|
post(postCreatingCreatePostRoute) {
|
|
unifiedRouter.apply {
|
|
val model = uniload(PostCreatingCreatePostModel.serializer())
|
|
|
|
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)
|
|
}
|