several fixes

This commit is contained in:
InsanusMokrassar 2022-04-27 18:24:51 +06:00
parent 175dd980f8
commit db10fe1b2c
2 changed files with 9 additions and 11 deletions

View File

@ -4,6 +4,7 @@ import dev.inmo.micro_utils.common.MPPFile
import dev.inmo.micro_utils.common.filename
import dev.inmo.micro_utils.ktor.common.*
import io.ktor.client.HttpClient
import io.ktor.client.call.body
import io.ktor.client.request.*
import io.ktor.client.request.forms.*
import io.ktor.client.statement.readBytes
@ -104,10 +105,8 @@ suspend fun <ResultType> HttpClient.uniget(
url: String,
resultDeserializer: DeserializationStrategy<ResultType>,
serialFormat: StandardKtorSerialFormat = standardKtorSerialFormat
) = get(
url
).let {
serialFormat.decodeDefault(resultDeserializer, it.readBytes())
) = get(url).let {
serialFormat.decodeDefault(resultDeserializer, it.body<StandardKtorSerialInputData>())
}
@ -129,7 +128,7 @@ suspend fun <BodyType, ResultType> HttpClient.unipost(
serialFormat.encodeDefault(bodyInfo.first, bodyInfo.second)
)
}.let {
serialFormat.decodeDefault(resultDeserializer, it.readBytes())
serialFormat.decodeDefault(resultDeserializer, it.body<StandardKtorSerialInputData>())
}
suspend fun <ResultType> HttpClient.unimultipart(
@ -158,7 +157,7 @@ suspend fun <ResultType> HttpClient.unimultipart(
}
) {
requestBuilder()
}.let { serialFormat.decodeDefault(resultDeserializer, it.readBytes()) }
}.let { serialFormat.decodeDefault(resultDeserializer, it.body<StandardKtorSerialInputData>()) }
suspend fun <BodyType, ResultType> HttpClient.unimultipart(
url: String,

View File

@ -14,8 +14,7 @@ import io.ktor.server.response.respondBytes
import io.ktor.server.routing.Route
import io.ktor.server.websocket.WebSocketServerSession
import io.ktor.util.pipeline.PipelineContext
import io.ktor.utils.io.core.Input
import io.ktor.utils.io.core.use
import io.ktor.utils.io.core.*
import io.ktor.utils.io.streams.asInput
import kotlinx.coroutines.flow.Flow
import kotlinx.serialization.DeserializationStrategy
@ -132,7 +131,7 @@ suspend fun ApplicationCall.uniloadMultipart(
is PartData.FormItem -> onFormItem(it)
is PartData.FileItem -> {
when (it.name) {
"bytes" -> resultInput = it.streamProvider().asInput()
"bytes" -> resultInput = it.provider()
else -> onCustomFileItem(it)
}
}
@ -154,7 +153,7 @@ suspend fun <T> ApplicationCall.uniloadMultipart(
onFormItem,
{
if (it.name == "data") {
data = standardKtorSerialFormat.decodeDefault(deserializer, it.streamProvider().readBytes()).optional
data = standardKtorSerialFormat.decodeDefault(deserializer, it.provider().readBytes()).optional
} else {
onCustomFileItem(it)
}
@ -201,7 +200,7 @@ suspend fun <T> ApplicationCall.uniloadMultipartFile(
}
}
}
"data" -> data = standardKtorSerialFormat.decodeDefault(deserializer, it.streamProvider().readBytes()).optional
"data" -> data = standardKtorSerialFormat.decodeDefault(deserializer, it.provider().readBytes()).optional
else -> onCustomFileItem(it)
}
}