impl publishing klient and kerver

This commit is contained in:
000Sanya
2020-08-15 16:37:52 +10:00
parent 544a74588c
commit 626edccc7d
11 changed files with 301 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
package com.insanusmokrassar.postssystem.publishing.ktor.client
import com.insanusmokrassar.postssystem.core.publishing.repos.PublishingKeysRepo
import com.insanusmokrassar.postssystem.core.publishing.repos.ReadPublishingKeysRepo
import com.insanusmokrassar.postssystem.core.publishing.repos.WritePublishingKeysRepo
class PublishingKeysRepoKtorClient (
readPublishingKeysClient: ReadPublishingKeysRepoKtorClient,
writePublishingKeysClient: WritePublishingKeysRepoKtorClient
) : PublishingKeysRepo, ReadPublishingKeysRepo by readPublishingKeysClient, WritePublishingKeysRepo by writePublishingKeysClient

View File

@@ -0,0 +1,26 @@
package com.insanusmokrassar.postssystem.publishing.ktor.client
import com.insanusmokrassar.postssystem.core.post.PostId
import com.insanusmokrassar.postssystem.core.publishing.TriggerControlKey
import com.insanusmokrassar.postssystem.core.publishing.repos.ReadPublishingKeysRepo
import com.insanusmokrassar.postssystem.ktor.client.uniget
import com.insanusmokrassar.postssystem.publishing.ktor.getPostIdByTriggerControlKeyRoute
import com.insanusmokrassar.postssystem.publishing.ktor.getTriggerControlKeyByPostIdRoute
import io.ktor.client.HttpClient
import kotlinx.serialization.builtins.nullable
import kotlinx.serialization.builtins.serializer
class ReadPublishingKeysRepoKtorClient (
private val baseUrl: String,
private val client: HttpClient = HttpClient()
) : ReadPublishingKeysRepo {
override suspend fun getPostIdByTriggerControlKey(key: TriggerControlKey): PostId? = client.uniget(
"$baseUrl/$getPostIdByTriggerControlKeyRoute",
PostId.serializer().nullable
)
override suspend fun getTriggerControlKeyByPostId(postId: PostId): TriggerControlKey? = client.uniget(
"$baseUrl/$getTriggerControlKeyByPostIdRoute",
TriggerControlKey.serializer().nullable
)
}

View File

@@ -0,0 +1,29 @@
package com.insanusmokrassar.postssystem.publishing.ktor.client
import com.insanusmokrassar.postssystem.core.post.PostId
import com.insanusmokrassar.postssystem.core.publishing.TriggerControlKey
import com.insanusmokrassar.postssystem.core.publishing.repos.WritePublishingKeysRepo
import com.insanusmokrassar.postssystem.ktor.client.BodyPair
import com.insanusmokrassar.postssystem.ktor.client.unipost
import com.insanusmokrassar.postssystem.publishing.ktor.SetPostTriggerControlKeyObject
import com.insanusmokrassar.postssystem.publishing.ktor.setPostTriggerControlKeyRoute
import com.insanusmokrassar.postssystem.publishing.ktor.unsetPostTriggerControlKeyRoute
import io.ktor.client.HttpClient
import kotlinx.serialization.builtins.serializer
class WritePublishingKeysRepoKtorClient (
private val baseUrl: String,
private val client: HttpClient = HttpClient()
) : WritePublishingKeysRepo {
override suspend fun setPostTriggerControlKey(postId: PostId, key: TriggerControlKey): Boolean = client.unipost(
"$baseUrl/$setPostTriggerControlKeyRoute",
BodyPair(SetPostTriggerControlKeyObject.serializer(), SetPostTriggerControlKeyObject(postId, key)),
Boolean.serializer()
)
override suspend fun unsetPostTriggerControlKey(postId: PostId): Boolean = client.unipost(
"$baseUrl/$unsetPostTriggerControlKeyRoute",
BodyPair(PostId.serializer(), postId),
Boolean.serializer()
)
}