first fully ready for trying system
This commit is contained in:
17
publicators/simple/server/build.gradle
Normal file
17
publicators/simple/server/build.gradle
Normal file
@@ -0,0 +1,17 @@
|
||||
plugins {
|
||||
id "org.jetbrains.kotlin.multiplatform"
|
||||
id "org.jetbrains.kotlin.plugin.serialization"
|
||||
}
|
||||
|
||||
apply from: "$mppJavaProjectPresetPath"
|
||||
|
||||
kotlin {
|
||||
sourceSets {
|
||||
commonMain {
|
||||
dependencies {
|
||||
api project(":postssystem.publicators.simple.common")
|
||||
api project(":postssystem.features.publication.server")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
package dev.inmo.postssystem.publicators.simple.server
|
||||
|
||||
import dev.inmo.micro_utils.ktor.server.configurators.ApplicationRoutingConfigurator
|
||||
import dev.inmo.postssystem.features.common.common.singleWithRandomQualifier
|
||||
import dev.inmo.postssystem.features.common.server.sessions.ModuleLoader
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import org.koin.core.module.Module
|
||||
|
||||
class SimplePublicationTriggerLoader : ModuleLoader {
|
||||
override fun Module.load(config: JsonObject) {
|
||||
singleWithRandomQualifier<ApplicationRoutingConfigurator.Element> {
|
||||
SimplePublicatorRoutingConfigurator(
|
||||
get()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
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.application.call
|
||||
import io.ktor.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)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user