All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ecwid.apiclient.v3.util.EncodeUtils.kt Maven / Gradle / Ivy

package com.ecwid.apiclient.v3.util

import java.net.URLEncoder

private val UTF_CHARSET = Charsets.UTF_8.toString()

internal fun buildQueryString(params: Map): String {
	return if (params.isEmpty()) {
		""
	} else {
		params.entries.joinToString(prefix = "?", separator = "&") { (key, value) ->
			URLEncoder.encode(key, UTF_CHARSET) + "=" + URLEncoder.encode(value, UTF_CHARSET)
		}
	}
}

internal fun buildEndpointPath(pathSegments: List): String {
	return pathSegments.joinToString(separator = "/") { component ->
		// We should have used something like Guava's UrlEscapers.urlPathSegmentEscaper() here to escape url's path.
		// But Ecwid API backend decodes path segments as query parameters and not as url's path segments.
		// So we have to do the same here to encode "+" sign as "%2B" and not "+".
		URLEncoder.encode(component, UTF_CHARSET)
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy