add unified way to make post and get requests from client
This commit is contained in:
core/ktor/client/src/commonMain/kotlin/com/insanusmokrassar/postssystem/core/ktor/client
content
post
ktor/client/src/commonMain/kotlin/com/insanusmokrassar/postssystem/ktor/client
28
ktor/client/src/commonMain/kotlin/com/insanusmokrassar/postssystem/ktor/client/StandardHttpClientGetPost.kt
Normal file
28
ktor/client/src/commonMain/kotlin/com/insanusmokrassar/postssystem/ktor/client/StandardHttpClientGetPost.kt
Normal file
@ -0,0 +1,28 @@
|
||||
package com.insanusmokrassar.postssystem.ktor.client
|
||||
|
||||
import com.insanusmokrassar.postssystem.ktor.standardKtorSerialFormat
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.request.get
|
||||
import io.ktor.client.request.post
|
||||
import kotlinx.serialization.*
|
||||
|
||||
typealias BodyPair<T> = Pair<SerializationStrategy<T>, T>
|
||||
|
||||
suspend fun <ResultType> HttpClient.uniget(
|
||||
url: String,
|
||||
resultDeserializer: DeserializationStrategy<ResultType>
|
||||
) = get<ByteArray>(
|
||||
url
|
||||
).let {
|
||||
standardKtorSerialFormat.load(resultDeserializer, it)
|
||||
}
|
||||
|
||||
suspend fun <BodyType, ResultType> HttpClient.unipost(
|
||||
url: String,
|
||||
bodyInfo: BodyPair<BodyType>,
|
||||
resultDeserializer: DeserializationStrategy<ResultType>
|
||||
) = post<ByteArray>(url) {
|
||||
body = standardKtorSerialFormat.dump(bodyInfo.first, bodyInfo.second)
|
||||
}.let {
|
||||
standardKtorSerialFormat.load(resultDeserializer, it)
|
||||
}
|
Reference in New Issue
Block a user