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

View File

@@ -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()

View File

@@ -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

View File

@@ -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