core/publicators/simple/client/src/commonMain/kotlin/dev/inmo/postssystem/publicators/simple/client/SimplePublicatorServiceClie...

34 lines
1.1 KiB
Kotlin

package dev.inmo.postssystem.publicators.simple.client
import dev.inmo.micro_utils.ktor.client.UnifiedRequester
import dev.inmo.micro_utils.ktor.common.buildStandardUrl
import dev.inmo.postssystem.features.posts.common.PostId
import dev.inmo.postssystem.features.publication.common.publicatorsRootPath
import dev.inmo.postssystem.publicators.simple.common.simplePublicatorPublishPathPart
import dev.inmo.postssystem.publicators.simple.common.simplePublicatorRootPath
import kotlinx.serialization.builtins.serializer
class SimplePublicatorServiceClient(
baseUrl: String,
private val client: HttpClient
) : SimplePublicatorService {
private val fullUrl = buildStandardUrl(
baseUrl,
buildStandardUrl(
publicatorsRootPath,
simplePublicatorRootPath
)
)
private val publishFullUrl = buildStandardUrl(
fullUrl,
simplePublicatorPublishPathPart
)
override suspend fun publish(postId: PostId) = unifiedRequester.unipost(
publishFullUrl,
PostId.serializer() to postId,
Unit.serializer()
)
}