migration onto new ktor and other dependencies

This commit is contained in:
2022-04-27 14:39:21 +06:00
parent eba44cd394
commit 8364020671
31 changed files with 127 additions and 110 deletions

View File

@@ -3,10 +3,10 @@ package dev.inmo.micro_utils.ktor.client
import dev.inmo.micro_utils.coroutines.safely
import dev.inmo.micro_utils.ktor.common.*
import io.ktor.client.HttpClient
import io.ktor.client.features.websocket.ws
import io.ktor.client.plugins.websocket.ws
import io.ktor.client.request.HttpRequestBuilder
import io.ktor.http.cio.websocket.Frame
import io.ktor.http.cio.websocket.readBytes
import io.ktor.websocket.Frame
import io.ktor.websocket.readBytes
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.channelFlow
import kotlinx.serialization.DeserializationStrategy

View File

@@ -6,6 +6,7 @@ import dev.inmo.micro_utils.ktor.common.*
import io.ktor.client.HttpClient
import io.ktor.client.request.*
import io.ktor.client.request.forms.*
import io.ktor.client.statement.readBytes
import io.ktor.http.*
import io.ktor.utils.io.core.ByteReadPacket
import kotlinx.serialization.*
@@ -103,10 +104,10 @@ suspend fun <ResultType> HttpClient.uniget(
url: String,
resultDeserializer: DeserializationStrategy<ResultType>,
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat
) = get<StandardKtorSerialInputData>(
) = get(
url
).let {
serialFormat.decodeDefault(resultDeserializer, it)
serialFormat.decodeDefault(resultDeserializer, it.readBytes())
}
@@ -123,10 +124,12 @@ suspend fun <BodyType, ResultType> HttpClient.unipost(
bodyInfo: BodyPair<BodyType>,
resultDeserializer: DeserializationStrategy<ResultType>,
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat
) = post<StandardKtorSerialInputData>(url) {
body = serialFormat.encodeDefault(bodyInfo.first, bodyInfo.second)
) = post(url) {
setBody(
serialFormat.encodeDefault(bodyInfo.first, bodyInfo.second)
)
}.let {
serialFormat.decodeDefault(resultDeserializer, it)
serialFormat.decodeDefault(resultDeserializer, it.readBytes())
}
suspend fun <ResultType> HttpClient.unimultipart(
@@ -139,7 +142,7 @@ suspend fun <ResultType> HttpClient.unimultipart(
dataHeadersBuilder: HeadersBuilder.() -> Unit = {},
requestBuilder: HttpRequestBuilder.() -> Unit = {},
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat
): ResultType = submitFormWithBinaryData<StandardKtorSerialInputData>(
): ResultType = submitFormWithBinaryData(
url,
formData = formData {
append(
@@ -155,7 +158,7 @@ suspend fun <ResultType> HttpClient.unimultipart(
}
) {
requestBuilder()
}.let { serialFormat.decodeDefault(resultDeserializer, it) }
}.let { serialFormat.decodeDefault(resultDeserializer, it.readBytes()) }
suspend fun <BodyType, ResultType> HttpClient.unimultipart(
url: String,

View File

@@ -4,9 +4,10 @@ import dev.inmo.micro_utils.common.MPPFile
import dev.inmo.micro_utils.common.filename
import dev.inmo.micro_utils.ktor.common.TemporalFileId
import io.ktor.client.HttpClient
import io.ktor.client.features.onUpload
import io.ktor.client.plugins.onUpload
import io.ktor.client.request.forms.formData
import io.ktor.client.request.forms.submitFormWithBinaryData
import io.ktor.client.statement.bodyAsText
import io.ktor.http.Headers
import io.ktor.http.HttpHeaders
import java.net.URLConnection
@@ -20,7 +21,7 @@ actual suspend fun HttpClient.tempUpload(
onUpload: (Long, Long) -> Unit
): TemporalFileId {
val inputProvider = file.inputProvider()
val fileId = submitFormWithBinaryData<String>(
val fileId = submitFormWithBinaryData(
fullTempUploadDraftPath,
formData = formData {
append(
@@ -34,6 +35,6 @@ actual suspend fun HttpClient.tempUpload(
}
) {
onUpload(onUpload)
}
}.bodyAsText()
return TemporalFileId(fileId)
}