29 lines
889 B
Kotlin
29 lines
889 B
Kotlin
package dev.inmo.postssystem.core.ktor.client.post
|
|
|
|
import dev.inmo.postssystem.core.ktor.postsRootRoute
|
|
import dev.inmo.postssystem.core.post.repo.*
|
|
import io.ktor.client.HttpClient
|
|
import io.ktor.client.features.websocket.WebSockets
|
|
|
|
class PostsRepoKtorClient private constructor(
|
|
readPostsRepo: ReadPostsRepo,
|
|
writePostsRepo: WritePostsRepo
|
|
) : PostsRepo, ReadPostsRepo by readPostsRepo, WritePostsRepo by writePostsRepo {
|
|
constructor(
|
|
baseUrl: String,
|
|
rootRoute: String? = postsRootRoute,
|
|
client: HttpClient = HttpClient {
|
|
install(WebSockets)
|
|
}
|
|
) : this(
|
|
ReadPostsRepoKtorClient(
|
|
rootRoute ?.let { "${baseUrl}/$rootRoute" } ?: baseUrl,
|
|
client
|
|
),
|
|
WritePostsRepoKtorClient(
|
|
rootRoute ?.let { "${baseUrl}/$rootRoute" } ?: baseUrl,
|
|
client
|
|
)
|
|
)
|
|
}
|