diff --git a/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/QueryParamsBuilder.kt b/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/QueryParamsBuilder.kt index 0ef45009594..536553f2332 100644 --- a/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/QueryParamsBuilder.kt +++ b/ktor/common/src/commonMain/kotlin/dev/inmo/micro_utils/ktor/common/QueryParamsBuilder.kt @@ -3,16 +3,28 @@ package dev.inmo.micro_utils.ktor.common typealias QueryParam = Pair typealias QueryParams = Map +/** + * Create query part which includes key=value pairs separated with & + */ val QueryParams.asUrlQuery: String get() = keys.joinToString("&") { "${it}${get(it) ?.let { value -> "=$value" }}" } +/** + * Create query part which includes key=value pairs separated with & + */ val List.asUrlQuery: String get() = joinToString("&") { (key, value) -> "${key}${value ?.let { _ -> "=$value" }}" } +/** + * Create query part which includes key=value pairs separated with & and attach to receiver + */ fun String.includeQueryParams( queryParams: QueryParams ): String = "$this${if(queryParams.isNotEmpty()) "${if (contains("?")) "&" else "?"}${queryParams.asUrlQuery}" else ""}" +/** + * Create query part which includes key=value pairs separated with & and attach to receiver + */ fun String.includeQueryParams( queryParams: List ): String = "$this${if (contains("?")) "&" else "?"}${queryParams.asUrlQuery}"