commonize url query parameters encoding/decoding

This commit is contained in:
2020-08-31 00:29:34 +06:00
parent 00068a064f
commit 4cc4d3d4ec
6 changed files with 41 additions and 37 deletions
ktor
client
src
commonMain
kotlin
com
insanusmokrassar
postssystem
common
src
commonMain
kotlin
com
insanusmokrassar
postssystem
server
src
jvmMain
kotlin
com
insanusmokrassar
postssystem
utils/repos/ktor
client
src
commonMain
kotlin
com
insanusmokrassar
postssystem
utils
repos
server
src
jvmMain
kotlin
com
insanusmokrassar

@ -1,6 +1,7 @@
package com.insanusmokrassar.postssystem.utils.repos.ktor.client.crud
import com.insanusmokrassar.postssystem.ktor.*
import com.insanusmokrassar.postssystem.ktor.client.encodeUrlQueryValue
import com.insanusmokrassar.postssystem.ktor.client.uniget
import com.insanusmokrassar.postssystem.utils.common.pagination.Pagination
import com.insanusmokrassar.postssystem.utils.common.pagination.PaginationResult
@ -29,7 +30,7 @@ class KtorReadStandardCrudRepo<ObjectType, IdType> (
baseUrl,
getByIdRouting,
mapOf(
"id" to id.toHex(idsSerializer)
"id" to idsSerializer.encodeUrlQueryValue(id)
)
),
objectsSerializerNullable
@ -40,7 +41,7 @@ class KtorReadStandardCrudRepo<ObjectType, IdType> (
baseUrl,
containsRouting,
mapOf(
"id" to id.toHex(idsSerializer)
"id" to idsSerializer.encodeUrlQueryValue(id)
)
),
Boolean.serializer()

@ -28,7 +28,7 @@ fun <ObjectType, IdType> Route.configureReadStandardCrudRepoRoutes(
}
get(getByIdRouting) {
val id = call.uniloadFromQueryOrSendError(
val id = call.decodeUrlQueryValueOrSendError(
"id",
idsSerializer
) ?: return@get
@ -40,7 +40,7 @@ fun <ObjectType, IdType> Route.configureReadStandardCrudRepoRoutes(
}
get(containsRouting) {
val id = call.uniloadFromQueryOrSendError(
val id = call.decodeUrlQueryValueOrSendError(
"id",
idsSerializer
) ?: return@get

@ -22,11 +22,11 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
get(getRoute) {
val pagination = call.request.queryParameters.extractPagination
val key = call.uniloadFromQueryOrSendError(
val key = call.decodeUrlQueryValueOrSendError(
keyParameterName,
keySerializer
) ?: return@get
val reversed = call.uniloadFromQuery(
val reversed = call.decodeUrlQueryValue(
reversedParameterName,
Boolean.serializer()
) ?: false
@ -39,7 +39,7 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
get(keysRoute) {
val pagination = call.request.queryParameters.extractPagination
val reversed = call.uniloadFromQuery(
val reversed = call.decodeUrlQueryValue(
reversedParameterName,
Boolean.serializer()
) ?: false
@ -51,10 +51,10 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
}
get(containsByKeyRoute) {
val key = standardKtorSerialFormat.decodeFromHexString(
keySerializer,
call.getQueryParameterOrSendError(keyParameterName) ?: return@get
)
val key = call.decodeUrlQueryValueOrSendError(
keyParameterName,
keySerializer
) ?: return@get
call.unianswer(
Boolean.serializer(),
@ -63,11 +63,11 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
}
get(containsByKeyValueRoute) {
val key = call.uniloadFromQueryOrSendError(
val key = call.decodeUrlQueryValueOrSendError(
keyParameterName,
keySerializer
) ?: return@get
val value = call.uniloadFromQueryOrSendError(
val value = call.decodeUrlQueryValueOrSendError(
valueParameterName,
valueSealizer
) ?: return@get
@ -79,7 +79,7 @@ fun <Key, Value> Route.configureOneToManyReadKeyValueRepoRoutes(
}
get(countByKeyRoute) {
val key = call.uniloadFromQueryOrSendError(
val key = call.decodeUrlQueryValueOrSendError(
keyParameterName,
keySerializer
) ?: return@get