diff --git a/.release-please-manifest.json b/.release-please-manifest.json index da59f99e..3e2bf498 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.4.0" + ".": "0.4.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 211f3f65..b8ad4101 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 0.4.1 (2024-11-12) + +Full Changelog: [v0.4.0...v0.4.1](https://github.com/orbcorp/orb-java/compare/v0.4.0...v0.4.1) + +### Bug Fixes + +* **internal:** add missing options ([1ed6c28](https://github.com/orbcorp/orb-java/commit/1ed6c28c1dacee3121ae2fad5645ea84b5486737)) + + +### Chores + +* rebuild project due to codegen change ([#105](https://github.com/orbcorp/orb-java/issues/105)) ([6c52ea7](https://github.com/orbcorp/orb-java/commit/6c52ea7a17936f5f675d51b1bcc1a3b6d4816c56)) +* rebuild project due to codegen change ([#107](https://github.com/orbcorp/orb-java/issues/107)) ([0365098](https://github.com/orbcorp/orb-java/commit/0365098b47e408203b0bc2bc4d723ef2c577fe60)) + ## 0.4.0 (2024-11-06) Full Changelog: [v0.3.0...v0.4.0](https://github.com/orbcorp/orb-java/compare/v0.3.0...v0.4.0) diff --git a/README.md b/README.md index b7ee9095..b889ebfc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -[![Maven Central](https://img.shields.io/maven-central/v/com.withorb.api/orb-java)](https://central.sonatype.com/artifact/com.withorb.api/orb-java/0.4.0) +[![Maven Central](https://img.shields.io/maven-central/v/com.withorb.api/orb-java)](https://central.sonatype.com/artifact/com.withorb.api/orb-java/0.4.1) @@ -25,7 +25,7 @@ The REST API documentation can be foundĀ on [docs.withorb.com](https://docs.with ```kotlin -implementation("com.withorb.api:orb-java:0.4.0") +implementation("com.withorb.api:orb-java:0.4.1") ``` #### Maven @@ -34,7 +34,7 @@ implementation("com.withorb.api:orb-java:0.4.0") com.withorb.api orb-java - 0.4.0 + 0.4.1 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 150045e9..787a98d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { allprojects { group = "com.withorb.api" - version = "0.4.0" // x-release-please-version + version = "0.4.1" // x-release-please-version } diff --git a/orb-java-client-okhttp/build.gradle.kts b/orb-java-client-okhttp/build.gradle.kts index 60e24b25..7cb4746d 100644 --- a/orb-java-client-okhttp/build.gradle.kts +++ b/orb-java-client-okhttp/build.gradle.kts @@ -6,7 +6,6 @@ plugins { dependencies { api(project(":orb-java-core")) - implementation("com.google.guava:guava:33.0.0-jre") implementation("com.squareup.okhttp3:okhttp:4.12.0") testImplementation(kotlin("test")) diff --git a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OkHttpClient.kt b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OkHttpClient.kt index 4233c50d..55ceddea 100644 --- a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OkHttpClient.kt +++ b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OkHttpClient.kt @@ -1,8 +1,7 @@ package com.withorb.api.client.okhttp -import com.google.common.collect.ListMultimap -import com.google.common.collect.MultimapBuilder import com.withorb.api.core.RequestOptions +import com.withorb.api.core.http.Headers import com.withorb.api.core.http.HttpClient import com.withorb.api.core.http.HttpMethod import com.withorb.api.core.http.HttpRequest @@ -16,7 +15,6 @@ import java.time.Duration import java.util.concurrent.CompletableFuture import okhttp3.Call import okhttp3.Callback -import okhttp3.Headers import okhttp3.HttpUrl import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.MediaType @@ -95,7 +93,9 @@ private constructor(private val okHttpClient: okhttp3.OkHttpClient, private val } val builder = Request.Builder().url(toUrl()).method(method.name, body) - headers.forEach(builder::header) + headers.names().forEach { name -> + headers.values(name).forEach { builder.header(name, it) } + } return builder.build() } @@ -107,7 +107,9 @@ private constructor(private val okHttpClient: okhttp3.OkHttpClient, private val val builder = baseUrl.newBuilder() pathSegments.forEach(builder::addPathSegment) - queryParams.forEach(builder::addQueryParameter) + queryParams.keys().forEach { key -> + queryParams.values(key).forEach { builder.addQueryParameter(key, it) } + } return builder.toString() } @@ -133,7 +135,7 @@ private constructor(private val okHttpClient: okhttp3.OkHttpClient, private val return object : HttpResponse { override fun statusCode(): Int = code - override fun headers(): ListMultimap = headers + override fun headers(): Headers = headers override fun body(): InputStream = body!!.byteStream() @@ -141,13 +143,10 @@ private constructor(private val okHttpClient: okhttp3.OkHttpClient, private val } } - private fun Headers.toHeaders(): ListMultimap { - val headers = - MultimapBuilder.treeKeys(String.CASE_INSENSITIVE_ORDER) - .arrayListValues() - .build() - forEach { pair -> headers.put(pair.first, pair.second) } - return headers + private fun okhttp3.Headers.toHeaders(): Headers { + val headersBuilder = Headers.builder() + forEach { (name, value) -> headersBuilder.put(name, value) } + return headersBuilder.build() } companion object { diff --git a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt index 50937b67..caf3d2a8 100644 --- a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt +++ b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClient.kt @@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.json.JsonMapper import com.withorb.api.client.OrbClient import com.withorb.api.client.OrbClientImpl import com.withorb.api.core.ClientOptions +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import java.net.Proxy import java.time.Clock import java.time.Duration @@ -36,6 +38,8 @@ class OrbOkHttpClient private constructor() { fun clock(clock: Clock) = apply { clientOptions.clock(clock) } + fun headers(headers: Headers) = apply { clientOptions.headers(headers) } + fun headers(headers: Map>) = apply { clientOptions.headers(headers) } @@ -46,6 +50,8 @@ class OrbOkHttpClient private constructor() { clientOptions.putHeaders(name, values) } + fun putAllHeaders(headers: Headers) = apply { clientOptions.putAllHeaders(headers) } + fun putAllHeaders(headers: Map>) = apply { clientOptions.putAllHeaders(headers) } @@ -58,6 +64,8 @@ class OrbOkHttpClient private constructor() { clientOptions.replaceHeaders(name, values) } + fun replaceAllHeaders(headers: Headers) = apply { clientOptions.replaceAllHeaders(headers) } + fun replaceAllHeaders(headers: Map>) = apply { clientOptions.replaceAllHeaders(headers) } @@ -66,6 +74,8 @@ class OrbOkHttpClient private constructor() { fun removeAllHeaders(names: Set) = apply { clientOptions.removeAllHeaders(names) } + fun queryParams(queryParams: QueryParams) = apply { clientOptions.queryParams(queryParams) } + fun queryParams(queryParams: Map>) = apply { clientOptions.queryParams(queryParams) } @@ -78,6 +88,10 @@ class OrbOkHttpClient private constructor() { clientOptions.putQueryParams(key, values) } + fun putAllQueryParams(queryParams: QueryParams) = apply { + clientOptions.putAllQueryParams(queryParams) + } + fun putAllQueryParams(queryParams: Map>) = apply { clientOptions.putAllQueryParams(queryParams) } @@ -90,6 +104,10 @@ class OrbOkHttpClient private constructor() { clientOptions.replaceQueryParams(key, values) } + fun replaceAllQueryParams(queryParams: QueryParams) = apply { + clientOptions.replaceAllQueryParams(queryParams) + } + fun replaceAllQueryParams(queryParams: Map>) = apply { clientOptions.replaceAllQueryParams(queryParams) } diff --git a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt index c489b88d..4c7bfd71 100644 --- a/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt +++ b/orb-java-client-okhttp/src/main/kotlin/com/withorb/api/client/okhttp/OrbOkHttpClientAsync.kt @@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.json.JsonMapper import com.withorb.api.client.OrbClientAsync import com.withorb.api.client.OrbClientAsyncImpl import com.withorb.api.core.ClientOptions +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import java.net.Proxy import java.time.Clock import java.time.Duration @@ -36,6 +38,8 @@ class OrbOkHttpClientAsync private constructor() { fun clock(clock: Clock) = apply { clientOptions.clock(clock) } + fun headers(headers: Headers) = apply { clientOptions.headers(headers) } + fun headers(headers: Map>) = apply { clientOptions.headers(headers) } @@ -46,6 +50,8 @@ class OrbOkHttpClientAsync private constructor() { clientOptions.putHeaders(name, values) } + fun putAllHeaders(headers: Headers) = apply { clientOptions.putAllHeaders(headers) } + fun putAllHeaders(headers: Map>) = apply { clientOptions.putAllHeaders(headers) } @@ -58,6 +64,8 @@ class OrbOkHttpClientAsync private constructor() { clientOptions.replaceHeaders(name, values) } + fun replaceAllHeaders(headers: Headers) = apply { clientOptions.replaceAllHeaders(headers) } + fun replaceAllHeaders(headers: Map>) = apply { clientOptions.replaceAllHeaders(headers) } @@ -66,6 +74,8 @@ class OrbOkHttpClientAsync private constructor() { fun removeAllHeaders(names: Set) = apply { clientOptions.removeAllHeaders(names) } + fun queryParams(queryParams: QueryParams) = apply { clientOptions.queryParams(queryParams) } + fun queryParams(queryParams: Map>) = apply { clientOptions.queryParams(queryParams) } @@ -78,6 +88,10 @@ class OrbOkHttpClientAsync private constructor() { clientOptions.putQueryParams(key, values) } + fun putAllQueryParams(queryParams: QueryParams) = apply { + clientOptions.putAllQueryParams(queryParams) + } + fun putAllQueryParams(queryParams: Map>) = apply { clientOptions.putAllQueryParams(queryParams) } @@ -90,6 +104,10 @@ class OrbOkHttpClientAsync private constructor() { clientOptions.replaceQueryParams(key, values) } + fun replaceAllQueryParams(queryParams: QueryParams) = apply { + clientOptions.replaceAllQueryParams(queryParams) + } + fun replaceAllQueryParams(queryParams: Map>) = apply { clientOptions.replaceAllQueryParams(queryParams) } diff --git a/orb-java-core/build.gradle.kts b/orb-java-core/build.gradle.kts index d7528daf..3c8ddaac 100644 --- a/orb-java-core/build.gradle.kts +++ b/orb-java-core/build.gradle.kts @@ -6,7 +6,6 @@ plugins { dependencies { api("com.fasterxml.jackson.core:jackson-core:2.14.3") api("com.fasterxml.jackson.core:jackson-databind:2.14.3") - api("com.google.guava:guava:33.0.0-jre") implementation("com.fasterxml.jackson.core:jackson-annotations:2.14.3") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.14.3") diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientAsyncImpl.kt index dfdccfab..79985a9a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientAsyncImpl.kt @@ -13,7 +13,7 @@ constructor( ) : OrbClientAsync { private val clientOptionsWithUserAgent = - if (clientOptions.headers.containsKey("User-Agent")) clientOptions + if (clientOptions.headers.names().contains("User-Agent")) clientOptions else clientOptions .toBuilder() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientImpl.kt index e7b4f104..4bd2d5bb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/client/OrbClientImpl.kt @@ -13,7 +13,7 @@ constructor( ) : OrbClient { private val clientOptionsWithUserAgent = - if (clientOptions.headers.containsKey("User-Agent")) clientOptions + if (clientOptions.headers.names().contains("User-Agent")) clientOptions else clientOptions .toBuilder() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt index f9daec72..8a27a863 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/ClientOptions.kt @@ -3,10 +3,10 @@ package com.withorb.api.core import com.fasterxml.jackson.databind.json.JsonMapper -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers import com.withorb.api.core.http.HttpClient import com.withorb.api.core.http.PhantomReachableClosingHttpClient +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.http.RetryingHttpClient import java.time.Clock @@ -17,12 +17,12 @@ private constructor( @get:JvmName("jsonMapper") val jsonMapper: JsonMapper, @get:JvmName("clock") val clock: Clock, @get:JvmName("baseUrl") val baseUrl: String, - @get:JvmName("apiKey") val apiKey: String, - @get:JvmName("webhookSecret") val webhookSecret: String?, - @get:JvmName("headers") val headers: ListMultimap, - @get:JvmName("queryParams") val queryParams: ListMultimap, + @get:JvmName("headers") val headers: Headers, + @get:JvmName("queryParams") val queryParams: QueryParams, @get:JvmName("responseValidation") val responseValidation: Boolean, @get:JvmName("maxRetries") val maxRetries: Int, + @get:JvmName("apiKey") val apiKey: String, + @get:JvmName("webhookSecret") val webhookSecret: String?, ) { fun toBuilder() = Builder().from(this) @@ -39,11 +39,11 @@ private constructor( class Builder { private var httpClient: HttpClient? = null - private var jsonMapper: JsonMapper? = null + private var jsonMapper: JsonMapper = jsonMapper() private var clock: Clock = Clock.systemUTC() private var baseUrl: String = PRODUCTION_URL - private var headers: MutableMap> = mutableMapOf() - private var queryParams: MutableMap> = mutableMapOf() + private var headers: Headers.Builder = Headers.builder() + private var queryParams: QueryParams.Builder = QueryParams.builder() private var responseValidation: Boolean = false private var maxRetries: Int = 2 private var apiKey: String? = null @@ -55,14 +55,8 @@ private constructor( jsonMapper = clientOptions.jsonMapper clock = clientOptions.clock baseUrl = clientOptions.baseUrl - headers = - clientOptions.headers.asMap().mapValuesTo(mutableMapOf()) { (_, value) -> - value.toMutableList() - } - queryParams = - clientOptions.queryParams.asMap().mapValuesTo(mutableMapOf()) { (_, value) -> - value.toMutableList() - } + headers = clientOptions.headers.toBuilder() + queryParams = clientOptions.queryParams.toBuilder() responseValidation = clientOptions.responseValidation maxRetries = clientOptions.maxRetries apiKey = clientOptions.apiKey @@ -73,42 +67,50 @@ private constructor( fun jsonMapper(jsonMapper: JsonMapper) = apply { this.jsonMapper = jsonMapper } + fun clock(clock: Clock) = apply { this.clock = clock } + fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl } - fun clock(clock: Clock) = apply { this.clock = clock } + fun headers(headers: Headers) = apply { + this.headers.clear() + putAllHeaders(headers) + } fun headers(headers: Map>) = apply { this.headers.clear() putAllHeaders(headers) } - fun putHeader(name: String, value: String) = apply { - this.headers.getOrPut(name) { mutableListOf() }.add(value) - } + fun putHeader(name: String, value: String) = apply { headers.put(name, value) } - fun putHeaders(name: String, values: Iterable) = apply { - this.headers.getOrPut(name) { mutableListOf() }.addAll(values) - } + fun putHeaders(name: String, values: Iterable) = apply { headers.put(name, values) } + + fun putAllHeaders(headers: Headers) = apply { this.headers.putAll(headers) } fun putAllHeaders(headers: Map>) = apply { - headers.forEach(this::putHeaders) + this.headers.putAll(headers) } - fun replaceHeaders(name: String, value: String) = apply { - headers.replaceValues(name, listOf(value)) - } + fun replaceHeaders(name: String, value: String) = apply { headers.replace(name, value) } fun replaceHeaders(name: String, values: Iterable) = apply { - headers.replaceValues(name, values) + headers.replace(name, values) } + fun replaceAllHeaders(headers: Headers) = apply { this.headers.replaceAll(headers) } + fun replaceAllHeaders(headers: Map>) = apply { - headers.forEach(::replaceHeaders) + this.headers.replaceAll(headers) } - fun removeHeaders(name: String) = apply { headers.removeAll(name) } + fun removeHeaders(name: String) = apply { headers.remove(name) } - fun removeAllHeaders(names: Set) = apply { names.forEach(::removeHeaders) } + fun removeAllHeaders(names: Set) = apply { headers.removeAll(names) } + + fun queryParams(queryParams: QueryParams) = apply { + this.queryParams.clear() + putAllQueryParams(queryParams) + } fun queryParams(queryParams: Map>) = apply { this.queryParams.clear() @@ -118,28 +120,36 @@ private constructor( fun putQueryParam(key: String, value: String) = apply { queryParams.put(key, value) } fun putQueryParams(key: String, values: Iterable) = apply { - queryParams.putAll(key, values) + queryParams.put(key, values) + } + + fun putAllQueryParams(queryParams: QueryParams) = apply { + this.queryParams.putAll(queryParams) } fun putAllQueryParams(queryParams: Map>) = apply { - queryParams.forEach(this::putQueryParams) + this.queryParams.putAll(queryParams) } fun replaceQueryParams(key: String, value: String) = apply { - queryParams.replaceValues(key, listOf(value)) + queryParams.replace(key, value) } fun replaceQueryParams(key: String, values: Iterable) = apply { - queryParams.replaceValues(key, values) + queryParams.replace(key, values) + } + + fun replaceAllQueryParams(queryParams: QueryParams) = apply { + this.queryParams.replaceAll(queryParams) } fun replaceAllQueryParams(queryParams: Map>) = apply { - queryParams.forEach(::replaceQueryParams) + this.queryParams.replaceAll(queryParams) } - fun removeQueryParams(key: String) = apply { queryParams.removeAll(key) } + fun removeQueryParams(key: String) = apply { queryParams.remove(key) } - fun removeAllQueryParams(keys: Set) = apply { keys.forEach(::removeQueryParams) } + fun removeAllQueryParams(keys: Set) = apply { queryParams.removeAll(keys) } fun responseValidation(responseValidation: Boolean) = apply { this.responseValidation = responseValidation @@ -160,8 +170,8 @@ private constructor( checkNotNull(httpClient) { "`httpClient` is required but was not set" } checkNotNull(apiKey) { "`apiKey` is required but was not set" } - val headers = ArrayListMultimap.create() - val queryParams = ArrayListMultimap.create() + val headers = Headers.builder() + val queryParams = QueryParams.builder() headers.put("X-Stainless-Lang", "java") headers.put("X-Stainless-Arch", getOsArch()) headers.put("X-Stainless-OS", getOsName()) @@ -169,11 +179,13 @@ private constructor( headers.put("X-Stainless-Package-Version", getPackageVersion()) headers.put("X-Stainless-Runtime", "JRE") headers.put("X-Stainless-Runtime-Version", getJavaVersion()) - if (!apiKey.isNullOrEmpty()) { - headers.put("Authorization", "Bearer ${apiKey}") + apiKey?.let { + if (!it.isEmpty()) { + headers.put("Authorization", "Bearer $it") + } } - this.headers.forEach(headers::replaceValues) - this.queryParams.forEach(queryParams::replaceValues) + headers.replaceAll(this.headers.build()) + queryParams.replaceAll(this.queryParams.build()) return ClientOptions( httpClient!!, @@ -185,15 +197,15 @@ private constructor( .idempotencyHeader("Idempotency-Key") .build() ), - jsonMapper ?: jsonMapper(), + jsonMapper, clock, baseUrl, - apiKey!!, - webhookSecret, - headers.toImmutable(), - queryParams.toImmutable(), + headers.build(), + queryParams.build(), responseValidation, maxRetries, + apiKey!!, + webhookSecret, ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/Utils.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/Utils.kt index f576c2da..f63b1594 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/Utils.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/Utils.kt @@ -2,10 +2,9 @@ package com.withorb.api.core -import com.google.common.collect.ImmutableListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.errors.OrbInvalidDataException import java.util.Collections +import java.util.SortedMap @JvmSynthetic internal fun T?.getOrThrow(name: String): T = @@ -20,7 +19,8 @@ internal fun Map.toImmutable(): Map = if (isEmpty()) Collections.emptyMap() else Collections.unmodifiableMap(toMap()) @JvmSynthetic -internal fun ListMultimap.toImmutable(): ListMultimap = - ImmutableListMultimap.copyOf(this) +internal fun , V> SortedMap.toImmutable(): SortedMap = + if (isEmpty()) Collections.emptySortedMap() + else Collections.unmodifiableSortedMap(toSortedMap(comparator())) internal interface Enum diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/ErrorHandler.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/ErrorHandler.kt index 63829e08..b4e8860c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/ErrorHandler.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/handlers/ErrorHandler.kt @@ -3,7 +3,7 @@ package com.withorb.api.core.handlers import com.fasterxml.jackson.databind.json.JsonMapper -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers import com.withorb.api.core.http.HttpResponse import com.withorb.api.core.http.HttpResponse.Handler import com.withorb.api.errors.BadRequestException @@ -116,7 +116,7 @@ private fun HttpResponse.buffered(): HttpResponse { return object : HttpResponse { override fun statusCode(): Int = this@buffered.statusCode() - override fun headers(): ListMultimap = this@buffered.headers() + override fun headers(): Headers = this@buffered.headers() override fun body(): InputStream = ByteArrayInputStream(body) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/Headers.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/Headers.kt new file mode 100644 index 00000000..25aa7f71 --- /dev/null +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/Headers.kt @@ -0,0 +1,92 @@ +package com.withorb.api.core.http + +import com.withorb.api.core.toImmutable +import java.util.TreeMap + +class Headers +private constructor( + private val map: Map>, + @get:JvmName("size") val size: Int +) { + + fun isEmpty(): Boolean = map.isEmpty() + + fun names(): Set = map.keys + + fun values(name: String): List = map[name].orEmpty() + + fun toBuilder(): Builder = Builder().putAll(map) + + companion object { + + @JvmStatic fun builder() = Builder() + } + + class Builder { + + private val map: MutableMap> = + TreeMap(String.CASE_INSENSITIVE_ORDER) + private var size: Int = 0 + + fun put(name: String, value: String) = apply { + map.getOrPut(name) { mutableListOf() }.add(value) + size++ + } + + fun put(name: String, values: Iterable) = apply { values.forEach { put(name, it) } } + + fun putAll(headers: Map>) = apply { headers.forEach(::put) } + + fun putAll(headers: Headers) = apply { + headers.names().forEach { put(it, headers.values(it)) } + } + + fun remove(name: String) = apply { size -= map.remove(name).orEmpty().size } + + fun removeAll(names: Set) = apply { names.forEach(::remove) } + + fun clear() = apply { + map.clear() + size = 0 + } + + fun replace(name: String, value: String) = apply { + remove(name) + put(name, value) + } + + fun replace(name: String, values: Iterable) = apply { + remove(name) + put(name, values) + } + + fun replaceAll(headers: Map>) = apply { + headers.forEach(::replace) + } + + fun replaceAll(headers: Headers) = apply { + headers.names().forEach { replace(it, headers.values(it)) } + } + + fun build() = + Headers( + map.mapValuesTo(TreeMap(String.CASE_INSENSITIVE_ORDER)) { (_, values) -> + values.toImmutable() + } + .toImmutable(), + size + ) + } + + override fun hashCode(): Int = map.hashCode() + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return other is Headers && map == other.map + } + + override fun toString(): String = "Headers{map=$map}" +} diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequest.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequest.kt index 5992c4a5..72285efa 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequest.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpRequest.kt @@ -1,8 +1,5 @@ package com.withorb.api.core.http -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap -import com.google.common.collect.MultimapBuilder import com.withorb.api.core.toImmutable class HttpRequest @@ -10,11 +7,13 @@ private constructor( @get:JvmName("method") val method: HttpMethod, @get:JvmName("url") val url: String?, @get:JvmName("pathSegments") val pathSegments: List, - @get:JvmName("headers") val headers: ListMultimap, - @get:JvmName("queryParams") val queryParams: ListMultimap, + @get:JvmName("headers") val headers: Headers, + @get:JvmName("queryParams") val queryParams: QueryParams, @get:JvmName("body") val body: HttpRequestBody?, ) { + fun toBuilder(): Builder = Builder().from(this) + override fun toString(): String = "HttpRequest{method=$method, url=$url, pathSegments=$pathSegments, headers=$headers, queryParams=$queryParams, body=$body}" @@ -27,11 +26,20 @@ private constructor( private var method: HttpMethod? = null private var url: String? = null private var pathSegments: MutableList = mutableListOf() - private var headers: ListMultimap = - MultimapBuilder.treeKeys(String.CASE_INSENSITIVE_ORDER).arrayListValues().build() - private var queryParams: ListMultimap = ArrayListMultimap.create() + private var headers: Headers.Builder = Headers.builder() + private var queryParams: QueryParams.Builder = QueryParams.builder() private var body: HttpRequestBody? = null + @JvmSynthetic + internal fun from(request: HttpRequest) = apply { + method = request.method + url = request.url + pathSegments = request.pathSegments.toMutableList() + headers = request.headers.toBuilder() + queryParams = request.queryParams.toBuilder() + body = request.body + } + fun method(method: HttpMethod) = apply { this.method = method } fun url(url: String) = apply { this.url = url } @@ -42,6 +50,11 @@ private constructor( this.pathSegments.addAll(pathSegments) } + fun headers(headers: Headers) = apply { + this.headers.clear() + putAllHeaders(headers) + } + fun headers(headers: Map>) = apply { this.headers.clear() putAllHeaders(headers) @@ -49,29 +62,34 @@ private constructor( fun putHeader(name: String, value: String) = apply { headers.put(name, value) } - fun putHeaders(name: String, values: Iterable) = apply { - headers.putAll(name, values) - } + fun putHeaders(name: String, values: Iterable) = apply { headers.put(name, values) } + + fun putAllHeaders(headers: Headers) = apply { this.headers.putAll(headers) } fun putAllHeaders(headers: Map>) = apply { - headers.forEach(::putHeaders) + this.headers.putAll(headers) } - fun replaceHeaders(name: String, value: String) = apply { - headers.replaceValues(name, listOf(value)) - } + fun replaceHeaders(name: String, value: String) = apply { headers.replace(name, value) } fun replaceHeaders(name: String, values: Iterable) = apply { - headers.replaceValues(name, values) + headers.replace(name, values) } + fun replaceAllHeaders(headers: Headers) = apply { this.headers.replaceAll(headers) } + fun replaceAllHeaders(headers: Map>) = apply { - headers.forEach(::replaceHeaders) + this.headers.replaceAll(headers) } - fun removeHeaders(name: String) = apply { headers.removeAll(name) } + fun removeHeaders(name: String) = apply { headers.remove(name) } + + fun removeAllHeaders(names: Set) = apply { headers.removeAll(names) } - fun removeAllHeaders(names: Set) = apply { names.forEach(::removeHeaders) } + fun queryParams(queryParams: QueryParams) = apply { + this.queryParams.clear() + putAllQueryParams(queryParams) + } fun queryParams(queryParams: Map>) = apply { this.queryParams.clear() @@ -81,28 +99,36 @@ private constructor( fun putQueryParam(key: String, value: String) = apply { queryParams.put(key, value) } fun putQueryParams(key: String, values: Iterable) = apply { - queryParams.putAll(key, values) + queryParams.put(key, values) + } + + fun putAllQueryParams(queryParams: QueryParams) = apply { + this.queryParams.putAll(queryParams) } fun putAllQueryParams(queryParams: Map>) = apply { - queryParams.forEach(::putQueryParams) + this.queryParams.putAll(queryParams) } fun replaceQueryParams(key: String, value: String) = apply { - queryParams.replaceValues(key, listOf(value)) + queryParams.replace(key, value) } fun replaceQueryParams(key: String, values: Iterable) = apply { - queryParams.replaceValues(key, values) + queryParams.replace(key, values) + } + + fun replaceAllQueryParams(queryParams: QueryParams) = apply { + this.queryParams.replaceAll(queryParams) } fun replaceAllQueryParams(queryParams: Map>) = apply { - queryParams.forEach(::replaceQueryParams) + this.queryParams.replaceAll(queryParams) } - fun removeQueryParams(key: String) = apply { queryParams.removeAll(key) } + fun removeQueryParams(key: String) = apply { queryParams.remove(key) } - fun removeAllQueryParams(keys: Set) = apply { keys.forEach(::removeQueryParams) } + fun removeAllQueryParams(keys: Set) = apply { queryParams.removeAll(keys) } fun body(body: HttpRequestBody) = apply { this.body = body } @@ -111,8 +137,8 @@ private constructor( checkNotNull(method) { "`method` is required but was not set" }, url, pathSegments.toImmutable(), - headers, - queryParams.toImmutable(), + headers.build(), + queryParams.build(), body, ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt index a04c1035..0e062edf 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/HttpResponse.kt @@ -1,6 +1,5 @@ package com.withorb.api.core.http -import com.google.common.collect.ListMultimap import java.io.InputStream import java.lang.AutoCloseable @@ -8,7 +7,7 @@ interface HttpResponse : AutoCloseable { fun statusCode(): Int - fun headers(): ListMultimap + fun headers(): Headers fun body(): InputStream diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/QueryParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/QueryParams.kt new file mode 100644 index 00000000..53c19d9f --- /dev/null +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/QueryParams.kt @@ -0,0 +1,86 @@ +package com.withorb.api.core.http + +import com.withorb.api.core.toImmutable + +class QueryParams +private constructor( + private val map: Map>, + @get:JvmName("size") val size: Int +) { + + fun isEmpty(): Boolean = map.isEmpty() + + fun keys(): Set = map.keys + + fun values(key: String): List = map[key].orEmpty() + + fun toBuilder(): Builder = Builder().putAll(map) + + companion object { + + @JvmStatic fun builder() = Builder() + } + + class Builder { + + private val map: MutableMap> = mutableMapOf() + private var size: Int = 0 + + fun put(key: String, value: String) = apply { + map.getOrPut(key) { mutableListOf() }.add(value) + size++ + } + + fun put(key: String, values: Iterable) = apply { values.forEach { put(key, it) } } + + fun putAll(queryParams: Map>) = apply { + queryParams.forEach(::put) + } + + fun putAll(queryParams: QueryParams) = apply { + queryParams.keys().forEach { put(it, queryParams.values(it)) } + } + + fun replace(key: String, value: String) = apply { + remove(key) + put(key, value) + } + + fun replace(key: String, values: Iterable) = apply { + remove(key) + put(key, values) + } + + fun replaceAll(queryParams: Map>) = apply { + queryParams.forEach(::replace) + } + + fun replaceAll(queryParams: QueryParams) = apply { + queryParams.keys().forEach { replace(it, queryParams.values(it)) } + } + + fun remove(key: String) = apply { size -= map.remove(key).orEmpty().size } + + fun removeAll(keys: Set) = apply { keys.forEach(::remove) } + + fun clear() = apply { + map.clear() + size = 0 + } + + fun build() = + QueryParams(map.mapValues { (_, values) -> values.toImmutable() }.toImmutable(), size) + } + + override fun hashCode(): Int = map.hashCode() + + override fun equals(other: Any?): Boolean { + if (this === other) { + return true + } + + return other is QueryParams && map == other.map + } + + override fun toString(): String = "QueryParams{map=$map}" +} diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/RetryingHttpClient.kt b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/RetryingHttpClient.kt index 896c3704..820dc233 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/core/http/RetryingHttpClient.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/core/http/RetryingHttpClient.kt @@ -35,21 +35,22 @@ private constructor( return httpClient.execute(request, requestOptions) } - maybeAddIdempotencyHeader(request) + var modifiedRequest = maybeAddIdempotencyHeader(request) // Don't send the current retry count in the headers if the caller set their own value. - val shouldSendRetryCount = !request.headers.containsKey("x-stainless-retry-count") + val shouldSendRetryCount = + !modifiedRequest.headers.names().contains("X-Stainless-Retry-Count") var retries = 0 while (true) { if (shouldSendRetryCount) { - setRetryCountHeader(request, retries) + modifiedRequest = setRetryCountHeader(modifiedRequest, retries) } val response = try { - val response = httpClient.execute(request, requestOptions) + val response = httpClient.execute(modifiedRequest, requestOptions) if (++retries > maxRetries || !shouldRetry(response)) { return response } @@ -76,10 +77,11 @@ private constructor( return httpClient.executeAsync(request, requestOptions) } - maybeAddIdempotencyHeader(request) + val modifiedRequest = maybeAddIdempotencyHeader(request) // Don't send the current retry count in the headers if the caller set their own value. - val shouldSendRetryCount = !request.headers.containsKey("x-stainless-retry-count") + val shouldSendRetryCount = + !modifiedRequest.headers.names().contains("X-Stainless-Retry-Count") var retries = 0 @@ -87,12 +89,11 @@ private constructor( request: HttpRequest, requestOptions: RequestOptions, ): CompletableFuture { - if (shouldSendRetryCount) { - setRetryCountHeader(request, retries) - } + val requestWithRetryCount = + if (shouldSendRetryCount) setRetryCountHeader(request, retries) else request return httpClient - .executeAsync(request, requestOptions) + .executeAsync(requestWithRetryCount, requestOptions) .handleAsync( fun( response: HttpResponse?, @@ -112,7 +113,7 @@ private constructor( val backoffMillis = getRetryBackoffMillis(retries, response) return sleepAsync(backoffMillis.toMillis()).thenCompose { - executeWithRetries(request, requestOptions) + executeWithRetries(requestWithRetryCount, requestOptions) } }, ) { @@ -122,7 +123,7 @@ private constructor( .thenCompose(Function.identity()) } - return executeWithRetries(request, requestOptions) + return executeWithRetries(modifiedRequest, requestOptions) } override fun close() = httpClient.close() @@ -132,23 +133,26 @@ private constructor( // the body data aren't available on subsequent attempts. request.body?.repeatable() ?: true - private fun setRetryCountHeader(request: HttpRequest, retries: Int) { - request.headers.removeAll("x-stainless-retry-count") - request.headers.put("x-stainless-retry-count", retries.toString()) - } + private fun setRetryCountHeader(request: HttpRequest, retries: Int): HttpRequest = + request.toBuilder().replaceHeaders("X-Stainless-Retry-Count", retries.toString()).build() private fun idempotencyKey(): String = "stainless-java-retry-${UUID.randomUUID()}" - private fun maybeAddIdempotencyHeader(request: HttpRequest) { - if (idempotencyHeader != null && !request.headers.containsKey(idempotencyHeader)) { - // Set a header to uniquely identify the request when retried - request.headers.put(idempotencyHeader, idempotencyKey()) + private fun maybeAddIdempotencyHeader(request: HttpRequest): HttpRequest { + if (idempotencyHeader == null || request.headers.names().contains(idempotencyHeader)) { + return request } + + return request + .toBuilder() + // Set a header to uniquely identify the request when retried. + .putHeader(idempotencyHeader, idempotencyKey()) + .build() } private fun shouldRetry(response: HttpResponse): Boolean { // Note: this is not a standard header - val shouldRetryHeader = response.headers().get("x-should-retry").getOrNull(0) + val shouldRetryHeader = response.headers().values("X-Should-Retry").getOrNull(0) val statusCode = response.statusCode() return when { @@ -180,11 +184,11 @@ private constructor( ?.headers() ?.let { headers -> headers - .get("Retry-After-Ms") + .values("Retry-After-Ms") .getOrNull(0) ?.toFloatOrNull() ?.times(TimeUnit.MILLISECONDS.toNanos(1)) - ?: headers.get("Retry-After").getOrNull(0)?.let { retryAfter -> + ?: headers.values("Retry-After").getOrNull(0)?.let { retryAfter -> retryAfter.toFloatOrNull()?.times(TimeUnit.SECONDS.toNanos(1)) ?: try { ChronoUnit.MILLIS.between( diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt index 07c54cc7..30513518 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/BadRequestException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class BadRequestException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(400, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/InternalServerException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/InternalServerException.kt index 61938270..c8acf740 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/InternalServerException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/InternalServerException.kt @@ -1,10 +1,10 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class InternalServerException( statusCode: Int, - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(statusCode, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt index 0e55011d..8e4f6cb4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/NotFoundException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class NotFoundException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(404, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbError.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbError.kt index b925699b..bf1b22ae 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbError.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbError.kt @@ -13,14 +13,12 @@ import java.util.Objects @JsonDeserialize(builder = OrbError.Builder::class) @NoAutoDetect class OrbError -constructor( - private val additionalProperties: Map, +private constructor( + @JsonAnyGetter + @get:JvmName("additionalProperties") + val additionalProperties: Map, ) { - @JsonAnyGetter fun additionalProperties(): Map = additionalProperties - - fun toBuilder() = Builder() - override fun equals(other: Any?): Boolean { if (this === other) { return true @@ -35,6 +33,8 @@ constructor( override fun toString() = "OrbError{additionalProperties=$additionalProperties}" + fun toBuilder() = Builder().from(this) + companion object { @JvmStatic fun builder() = Builder() @@ -44,22 +44,31 @@ constructor( private var additionalProperties: MutableMap = mutableMapOf() - fun from(error: OrbError) = apply { additionalProperties(error.additionalProperties) } + @JvmSynthetic + internal fun from(orbError: OrbError) = apply { + additionalProperties = orbError.additionalProperties.toMutableMap() + } fun additionalProperties(additionalProperties: Map) = apply { this.additionalProperties.clear() - this.additionalProperties.putAll(additionalProperties) + putAllAdditionalProperties(additionalProperties) } @JsonAnySetter fun putAdditionalProperty(key: String, value: JsonValue) = apply { - this.additionalProperties.put(key, value) + additionalProperties.put(key, value) } fun putAllAdditionalProperties(additionalProperties: Map) = apply { this.additionalProperties.putAll(additionalProperties) } + fun removeAdditionalProperty(key: String) = apply { additionalProperties.remove(key) } + + fun removeAllAdditionalProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalProperty) + } + fun build(): OrbError = OrbError(additionalProperties.toImmutable()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbServiceException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbServiceException.kt index 7c8fb8f8..2eafb822 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbServiceException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/OrbServiceException.kt @@ -1,12 +1,12 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers abstract class OrbServiceException @JvmOverloads constructor( private val statusCode: Int, - private val headers: ListMultimap, + private val headers: Headers, private val body: String, private val error: OrbError, message: String = "$statusCode: $error", @@ -15,7 +15,7 @@ constructor( fun statusCode(): Int = statusCode - fun headers(): ListMultimap = headers + fun headers(): Headers = headers fun body(): String = body diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt index b2fe41c3..b5d97fd4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/PermissionDeniedException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class PermissionDeniedException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(403, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt index 11f99d0f..cbfd0f5d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/RateLimitException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class RateLimitException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(429, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt index e0199cfc..916c60ef 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnauthorizedException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class UnauthorizedException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(401, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnexpectedStatusCodeException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnexpectedStatusCodeException.kt index 1c564753..81b26ef5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnexpectedStatusCodeException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnexpectedStatusCodeException.kt @@ -1,10 +1,10 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class UnexpectedStatusCodeException( statusCode: Int, - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(statusCode, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt index 420b27ab..818e9ad7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/errors/UnprocessableEntityException.kt @@ -1,9 +1,9 @@ package com.withorb.api.errors -import com.google.common.collect.ListMultimap +import com.withorb.api.core.http.Headers class UnprocessableEntityException( - headers: ListMultimap, + headers: Headers, body: String, error: OrbError, ) : OrbServiceException(422, headers, body, error) diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt index b93399d6..9a78a633 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForCustomerParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -26,8 +26,8 @@ constructor( private val currency: String, private val type: Type, private val thresholds: List?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -49,9 +49,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -160,9 +160,9 @@ constructor( "AlertCreateForCustomerBody{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -195,8 +195,8 @@ constructor( private var currency: String? = null private var type: Type? = null private var thresholds: MutableList = mutableListOf() - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -227,6 +227,11 @@ constructor( /** The thresholds that define the values at which the alert will be triggered. */ fun addThreshold(threshold: Threshold) = apply { this.thresholds.add(threshold) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -237,29 +242,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -272,42 +290,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -315,20 +339,22 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertCreateForCustomerParams = AlertCreateForCustomerParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, checkNotNull(currency) { "`currency` is required but was not set" }, checkNotNull(type) { "`type` is required but was not set" }, if (thresholds.size == 0) null else thresholds.toImmutable(), - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt index fe87013b..058f5396 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForExternalCustomerParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -26,8 +26,8 @@ constructor( private val currency: String, private val type: Type, private val thresholds: List?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -49,9 +49,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -162,9 +162,9 @@ constructor( "AlertCreateForExternalCustomerBody{currency=$currency, type=$type, thresholds=$thresholds, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -197,8 +197,8 @@ constructor( private var currency: String? = null private var type: Type? = null private var thresholds: MutableList = mutableListOf() - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -233,6 +233,11 @@ constructor( /** The thresholds that define the values at which the alert will be triggered. */ fun addThreshold(threshold: Threshold) = apply { this.thresholds.add(threshold) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -243,29 +248,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -278,42 +296,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -321,6 +345,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertCreateForExternalCustomerParams = AlertCreateForExternalCustomerParams( checkNotNull(externalCustomerId) { @@ -329,14 +361,8 @@ constructor( checkNotNull(currency) { "`currency` is required but was not set" }, checkNotNull(type) { "`type` is required but was not set" }, if (thresholds.size == 0) null else thresholds.toImmutable(), - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt index 588edcd1..a89d7314 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertCreateForSubscriptionParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -26,8 +26,8 @@ constructor( private val thresholds: List, private val type: Type, private val metricId: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -49,9 +49,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -162,9 +162,9 @@ constructor( "AlertCreateForSubscriptionBody{thresholds=$thresholds, type=$type, metricId=$metricId, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -197,8 +197,8 @@ constructor( private var thresholds: MutableList = mutableListOf() private var type: Type? = null private var metricId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -230,6 +230,11 @@ constructor( /** The metric to track usage for. */ fun metricId(metricId: String) = apply { this.metricId = metricId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -240,29 +245,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -275,42 +293,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -318,6 +342,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertCreateForSubscriptionParams = AlertCreateForSubscriptionParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, @@ -325,14 +357,8 @@ constructor( .toImmutable(), checkNotNull(type) { "`type` is required but was not set" }, metricId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt index 058b554c..b3c5323b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertDisableParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class AlertDisableParams constructor( private val alertConfigurationId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var alertConfigurationId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -85,6 +85,11 @@ constructor( this.alertConfigurationId = alertConfigurationId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -95,29 +100,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -130,42 +148,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -173,19 +197,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertDisableParams = AlertDisableParams( checkNotNull(alertConfigurationId) { "`alertConfigurationId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt index 5a95dec0..0fe4675f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertEnableParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class AlertEnableParams constructor( private val alertConfigurationId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var alertConfigurationId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -85,6 +85,11 @@ constructor( this.alertConfigurationId = alertConfigurationId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -95,29 +100,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -130,42 +148,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -173,19 +197,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertEnableParams = AlertEnableParams( checkNotNull(alertConfigurationId) { "`alertConfigurationId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt index e3c68304..486faa94 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -23,8 +22,8 @@ constructor( private val externalCustomerId: String?, private val limit: Long?, private val subscriptionId: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun createdAtGt(): Optional = Optional.ofNullable(createdAtGt) @@ -45,35 +44,49 @@ constructor( fun subscriptionId(): Optional = Optional.ofNullable(subscriptionId) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) - } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.customerId?.let { params.put("customer_id", listOf(it.toString())) } - this.externalCustomerId?.let { params.put("external_customer_id", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.subscriptionId?.let { params.put("subscription_id", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) + } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.customerId?.let { queryParams.put("customer_id", listOf(it.toString())) } + this.externalCustomerId?.let { + queryParams.put("external_customer_id", listOf(it.toString())) + } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.subscriptionId?.let { queryParams.put("subscription_id", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -109,8 +122,8 @@ constructor( private var externalCustomerId: String? = null private var limit: Long? = null private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(alertListParams: AlertListParams) = apply { @@ -155,6 +168,11 @@ constructor( /** Fetch alerts scoped to this subscription_id */ fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -165,29 +183,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -200,33 +231,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): AlertListParams = @@ -240,14 +277,8 @@ constructor( externalCustomerId, limit, subscriptionId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt index 96cf6e1c..00602144 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertRetrieveParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class AlertRetrieveParams constructor( private val alertId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun alertId(): String = alertId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var alertId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(alertRetrieveParams: AlertRetrieveParams) = apply { @@ -71,6 +70,11 @@ constructor( fun alertId(alertId: String) = apply { this.alertId = alertId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): AlertRetrieveParams = AlertRetrieveParams( checkNotNull(alertId) { "`alertId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt index c32ead19..1b060399 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/AlertUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -19,8 +19,8 @@ class AlertUpdateParams constructor( private val alertConfigurationId: String, private val thresholds: List, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -33,9 +33,9 @@ constructor( return AlertUpdateBody(thresholds, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -124,9 +124,9 @@ constructor( "AlertUpdateBody{thresholds=$thresholds, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -157,8 +157,8 @@ constructor( private var alertConfigurationId: String? = null private var thresholds: MutableList = mutableListOf() - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -183,6 +183,11 @@ constructor( /** The thresholds that define the values at which the alert will be triggered. */ fun addThreshold(threshold: Threshold) = apply { this.thresholds.add(threshold) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -193,29 +198,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -228,42 +246,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -271,6 +295,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): AlertUpdateParams = AlertUpdateParams( checkNotNull(alertConfigurationId) { @@ -278,14 +310,8 @@ constructor( }, checkNotNull(thresholds) { "`thresholds` is required but was not set" } .toImmutable(), - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt index 1fb52c44..51d10017 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponArchiveParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class CouponArchiveParams constructor( private val couponId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var couponId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun couponId(couponId: String) = apply { this.couponId = couponId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CouponArchiveParams = CouponArchiveParams( checkNotNull(couponId) { "`couponId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt index efb1e322..1a110ca4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponCreateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -37,8 +37,8 @@ constructor( private val redemptionCode: String, private val durationInMonths: Long?, private val maxRedemptions: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -61,9 +61,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = CouponCreateBody.Builder::class) @NoAutoDetect @@ -193,9 +193,9 @@ constructor( "CouponCreateBody{discount=$discount, redemptionCode=$redemptionCode, durationInMonths=$durationInMonths, maxRedemptions=$maxRedemptions, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -228,8 +228,8 @@ constructor( private var redemptionCode: String? = null private var durationInMonths: Long? = null private var maxRedemptions: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -270,6 +270,11 @@ constructor( */ fun maxRedemptions(maxRedemptions: Long) = apply { this.maxRedemptions = maxRedemptions } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -280,29 +285,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -315,42 +333,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -358,20 +382,22 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CouponCreateParams = CouponCreateParams( checkNotNull(discount) { "`discount` is required but was not set" }, checkNotNull(redemptionCode) { "`redemptionCode` is required but was not set" }, durationInMonths, maxRedemptions, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt index 8a91ffd4..2a51c4c4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class CouponFetchParams constructor( private val couponId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun couponId(): String = couponId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var couponId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(couponFetchParams: CouponFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun couponId(couponId: String) = apply { this.couponId = couponId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CouponFetchParams = CouponFetchParams( checkNotNull(couponId) { "`couponId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt index 0a3fd79a..cbc7e0a4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -16,8 +15,8 @@ constructor( private val limit: Long?, private val redemptionCode: String?, private val showArchived: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun cursor(): Optional = Optional.ofNullable(cursor) @@ -28,22 +27,22 @@ constructor( fun showArchived(): Optional = Optional.ofNullable(showArchived) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.redemptionCode?.let { params.put("redemption_code", listOf(it.toString())) } - this.showArchived?.let { params.put("show_archived", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.redemptionCode?.let { queryParams.put("redemption_code", listOf(it.toString())) } + this.showArchived?.let { queryParams.put("show_archived", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -74,8 +73,8 @@ constructor( private var limit: Long? = null private var redemptionCode: String? = null private var showArchived: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(couponListParams: CouponListParams) = apply { @@ -104,6 +103,11 @@ constructor( */ fun showArchived(showArchived: Boolean) = apply { this.showArchived = showArchived } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -114,29 +118,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -149,33 +166,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CouponListParams = @@ -184,14 +207,8 @@ constructor( limit, redemptionCode, showArchived, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt index 67c93ed0..575066dd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CouponSubscriptionListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -15,8 +14,8 @@ constructor( private val couponId: String, private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun couponId(): String = couponId @@ -25,15 +24,15 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -43,9 +42,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -75,8 +74,8 @@ constructor( private var couponId: String? = null private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(couponSubscriptionListParams: CouponSubscriptionListParams) = apply { @@ -98,6 +97,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -108,29 +112,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -143,33 +160,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CouponSubscriptionListParams = @@ -177,14 +200,8 @@ constructor( checkNotNull(couponId) { "`couponId` is required but was not set" }, cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt index 6f6db274..bfa39a5a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteCreateParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -25,8 +25,8 @@ constructor( private val lineItems: List, private val memo: String?, private val reason: Reason?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -46,9 +46,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = CreditNoteCreateBody.Builder::class) @NoAutoDetect @@ -148,9 +148,9 @@ constructor( "CreditNoteCreateBody{lineItems=$lineItems, memo=$memo, reason=$reason, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -182,8 +182,8 @@ constructor( private var lineItems: MutableList = mutableListOf() private var memo: String? = null private var reason: Reason? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -209,6 +209,11 @@ constructor( /** An optional reason for the credit note. */ fun reason(reason: Reason) = apply { this.reason = reason } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -219,29 +224,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -254,42 +272,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -297,19 +321,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CreditNoteCreateParams = CreditNoteCreateParams( checkNotNull(lineItems) { "`lineItems` is required but was not set" }.toImmutable(), memo, reason, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt index d966df4c..ba0ec4a2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class CreditNoteFetchParams constructor( private val creditNoteId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun creditNoteId(): String = creditNoteId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var creditNoteId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(creditNoteFetchParams: CreditNoteFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun creditNoteId(creditNoteId: String) = apply { this.creditNoteId = creditNoteId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CreditNoteFetchParams = CreditNoteFetchParams( checkNotNull(creditNoteId) { "`creditNoteId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt index 578a6926..4cec3dff 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CreditNoteListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -14,28 +13,28 @@ class CreditNoteListParams constructor( private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun cursor(): Optional = Optional.ofNullable(cursor) fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -64,8 +63,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(creditNoteListParams: CreditNoteListParams) = apply { @@ -84,6 +83,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -94,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -129,47 +146,47 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CreditNoteListParams = CreditNoteListParams( cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt index ec8fa2c7..599cd85e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionCreateParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -26,8 +26,8 @@ constructor( private val amount: String, private val type: Type, private val description: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -49,9 +49,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -157,9 +157,9 @@ constructor( "CustomerBalanceTransactionCreateBody{amount=$amount, type=$type, description=$description, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -192,8 +192,8 @@ constructor( private var amount: String? = null private var type: Type? = null private var description: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -220,6 +220,11 @@ constructor( /** An optional description that can be specified around this entry. */ fun description(description: String) = apply { this.description = description } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -230,29 +235,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -265,42 +283,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -308,20 +332,22 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerBalanceTransactionCreateParams = CustomerBalanceTransactionCreateParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, checkNotNull(amount) { "`amount` is required but was not set" }, checkNotNull(type) { "`type` is required but was not set" }, description, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt index 01c9d5d4..d9bb659b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -21,8 +20,8 @@ constructor( private val operationTimeGte: OffsetDateTime?, private val operationTimeLt: OffsetDateTime?, private val operationTimeLte: OffsetDateTime?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -39,39 +38,39 @@ constructor( fun operationTimeLte(): Optional = Optional.ofNullable(operationTimeLte) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } this.operationTimeGt?.let { - params.put( + queryParams.put( "operation_time[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.operationTimeGte?.let { - params.put( + queryParams.put( "operation_time[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.operationTimeLt?.let { - params.put( + queryParams.put( "operation_time[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.operationTimeLte?.let { - params.put( + queryParams.put( "operation_time[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -81,9 +80,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -117,8 +116,8 @@ constructor( private var operationTimeGte: OffsetDateTime? = null private var operationTimeLt: OffsetDateTime? = null private var operationTimeLte: OffsetDateTime? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -162,6 +161,11 @@ constructor( this.operationTimeLte = operationTimeLte } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -172,29 +176,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -207,33 +224,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerBalanceTransactionListParams = @@ -245,14 +268,8 @@ constructor( operationTimeGte, operationTimeLt, operationTimeLte, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt index 9caf810e..2e5f9ccb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -24,8 +23,8 @@ constructor( private val timeframeEnd: OffsetDateTime?, private val timeframeStart: OffsetDateTime?, private val viewMode: ViewMode?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId @@ -38,21 +37,27 @@ constructor( fun viewMode(): Optional = Optional.ofNullable(viewMode) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.currency?.let { params.put("currency", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } this.timeframeEnd?.let { - params.put("timeframe_end", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_end", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.timeframeStart?.let { - params.put("timeframe_start", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_start", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.viewMode?.let { params.put("view_mode", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.viewMode?.let { queryParams.put("view_mode", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -62,9 +67,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -96,8 +101,8 @@ constructor( private var timeframeEnd: OffsetDateTime? = null private var timeframeStart: OffsetDateTime? = null private var viewMode: ViewMode? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerCostListByExternalIdParams: CustomerCostListByExternalIdParams) = @@ -133,6 +138,11 @@ constructor( */ fun viewMode(viewMode: ViewMode) = apply { this.viewMode = viewMode } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -143,29 +153,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -178,33 +201,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCostListByExternalIdParams = @@ -216,14 +245,8 @@ constructor( timeframeEnd, timeframeStart, viewMode, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt index b154da11..9fed5621 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCostListParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -24,8 +23,8 @@ constructor( private val timeframeEnd: OffsetDateTime?, private val timeframeStart: OffsetDateTime?, private val viewMode: ViewMode?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -38,21 +37,27 @@ constructor( fun viewMode(): Optional = Optional.ofNullable(viewMode) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.currency?.let { params.put("currency", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } this.timeframeEnd?.let { - params.put("timeframe_end", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_end", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.timeframeStart?.let { - params.put("timeframe_start", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_start", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.viewMode?.let { params.put("view_mode", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.viewMode?.let { queryParams.put("view_mode", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -62,9 +67,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -96,8 +101,8 @@ constructor( private var timeframeEnd: OffsetDateTime? = null private var timeframeStart: OffsetDateTime? = null private var viewMode: ViewMode? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerCostListParams: CustomerCostListParams) = apply { @@ -130,6 +135,11 @@ constructor( */ fun viewMode(viewMode: ViewMode) = apply { this.viewMode = viewMode } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -140,29 +150,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -175,33 +198,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCostListParams = @@ -211,14 +240,8 @@ constructor( timeframeEnd, timeframeStart, viewMode, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt index 0d9f2e59..928c981b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -50,8 +50,8 @@ constructor( private val taxConfiguration: TaxConfiguration?, private val taxId: TaxId?, private val timezone: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -115,9 +115,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = CustomerCreateBody.Builder::class) @NoAutoDetect @@ -656,9 +656,9 @@ constructor( "CustomerCreateBody{email=$email, name=$name, accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, metadata=$metadata, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, timezone=$timezone, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -704,8 +704,8 @@ constructor( private var taxConfiguration: TaxConfiguration? = null private var taxId: TaxId? = null private var timezone: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -954,6 +954,11 @@ constructor( */ fun timezone(timezone: String) = apply { this.timezone = timezone } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -964,29 +969,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -999,42 +1017,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -1042,6 +1066,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerCreateParams = CustomerCreateParams( checkNotNull(email) { "`email` is required but was not set" }, @@ -1061,14 +1093,8 @@ constructor( taxConfiguration, taxId, timezone, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt index 8289d189..233f6646 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryByExternalIdParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -23,6 +21,8 @@ import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -44,8 +44,8 @@ constructor( private val addVoidCreditLedgerEntryRequestParams: AddVoidCreditLedgerEntryRequestParams?, private val addAmendmentCreditLedgerEntryRequestParams: AddAmendmentCreditLedgerEntryRequestParams?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId @@ -80,9 +80,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -432,9 +432,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -476,8 +476,8 @@ constructor( private var addAmendmentCreditLedgerEntryRequestParams: AddAmendmentCreditLedgerEntryRequestParams? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -566,6 +566,11 @@ constructor( addAmendmentCreditLedgerEntryRequestParams } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -576,29 +581,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -611,33 +629,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditLedgerCreateEntryByExternalIdParams = @@ -650,14 +674,8 @@ constructor( addExpirationChangeCreditLedgerEntryRequestParams, addVoidCreditLedgerEntryRequestParams, addAmendmentCreditLedgerEntryRequestParams, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt index f89fd592..e3e76b3b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerCreateEntryParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -23,6 +21,8 @@ import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -44,8 +44,8 @@ constructor( private val addVoidCreditLedgerEntryRequestParams: AddVoidCreditLedgerEntryRequestParams?, private val addAmendmentCreditLedgerEntryRequestParams: AddAmendmentCreditLedgerEntryRequestParams?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -80,9 +80,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -425,9 +425,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -469,8 +469,8 @@ constructor( private var addAmendmentCreditLedgerEntryRequestParams: AddAmendmentCreditLedgerEntryRequestParams? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -549,6 +549,11 @@ constructor( addAmendmentCreditLedgerEntryRequestParams } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -559,29 +564,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -594,33 +612,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditLedgerCreateEntryParams = @@ -631,14 +655,8 @@ constructor( addExpirationChangeCreditLedgerEntryRequestParams, addVoidCreditLedgerEntryRequestParams, addAmendmentCreditLedgerEntryRequestParams, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt index 3133ab48..903b6280 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -30,8 +29,8 @@ constructor( private val entryType: EntryType?, private val limit: Long?, private val minimumAmount: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId @@ -56,31 +55,43 @@ constructor( fun minimumAmount(): Optional = Optional.ofNullable(minimumAmount) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) - } - this.currency?.let { params.put("currency", listOf(it.toString())) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.entryStatus?.let { params.put("entry_status", listOf(it.toString())) } - this.entryType?.let { params.put("entry_type", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.minimumAmount?.let { params.put("minimum_amount", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) + } + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.entryStatus?.let { queryParams.put("entry_status", listOf(it.toString())) } + this.entryType?.let { queryParams.put("entry_type", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.minimumAmount?.let { queryParams.put("minimum_amount", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -90,9 +101,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -130,8 +141,8 @@ constructor( private var entryType: EntryType? = null private var limit: Long? = null private var minimumAmount: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -182,6 +193,11 @@ constructor( fun minimumAmount(minimumAmount: String) = apply { this.minimumAmount = minimumAmount } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -192,29 +208,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -227,33 +256,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditLedgerListByExternalIdParams = @@ -271,14 +306,8 @@ constructor( entryType, limit, minimumAmount, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt index c7474b6e..65bad03e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditLedgerListParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -30,8 +29,8 @@ constructor( private val entryType: EntryType?, private val limit: Long?, private val minimumAmount: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -56,31 +55,43 @@ constructor( fun minimumAmount(): Optional = Optional.ofNullable(minimumAmount) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) - } - this.currency?.let { params.put("currency", listOf(it.toString())) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.entryStatus?.let { params.put("entry_status", listOf(it.toString())) } - this.entryType?.let { params.put("entry_type", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.minimumAmount?.let { params.put("minimum_amount", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) + } + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.entryStatus?.let { queryParams.put("entry_status", listOf(it.toString())) } + this.entryType?.let { queryParams.put("entry_type", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.minimumAmount?.let { queryParams.put("minimum_amount", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -90,9 +101,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -130,8 +141,8 @@ constructor( private var entryType: EntryType? = null private var limit: Long? = null private var minimumAmount: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerCreditLedgerListParams: CustomerCreditLedgerListParams) = apply { @@ -178,6 +189,11 @@ constructor( fun minimumAmount(minimumAmount: String) = apply { this.minimumAmount = minimumAmount } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -188,29 +204,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -223,33 +252,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditLedgerListParams = @@ -265,14 +300,8 @@ constructor( entryType, limit, minimumAmount, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt index 13311ae4..e05632c5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -17,8 +16,8 @@ constructor( private val cursor: String?, private val includeAllBlocks: Boolean?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId @@ -31,17 +30,17 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.currency?.let { params.put("currency", listOf(it.toString())) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.includeAllBlocks?.let { params.put("include_all_blocks", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.includeAllBlocks?.let { queryParams.put("include_all_blocks", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -51,9 +50,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -85,8 +84,8 @@ constructor( private var cursor: String? = null private var includeAllBlocks: Boolean? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -122,6 +121,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -132,29 +136,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -167,33 +184,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditListByExternalIdParams = @@ -205,14 +228,8 @@ constructor( cursor, includeAllBlocks, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt index 92d67772..14acc5ed 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -17,8 +16,8 @@ constructor( private val cursor: String?, private val includeAllBlocks: Boolean?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -31,17 +30,17 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.currency?.let { params.put("currency", listOf(it.toString())) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.includeAllBlocks?.let { params.put("include_all_blocks", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.includeAllBlocks?.let { queryParams.put("include_all_blocks", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -51,9 +50,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -85,8 +84,8 @@ constructor( private var cursor: String? = null private var includeAllBlocks: Boolean? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerCreditListParams: CustomerCreditListParams) = apply { @@ -118,6 +117,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -128,29 +132,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -163,33 +180,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditListParams = @@ -199,14 +222,8 @@ constructor( cursor, includeAllBlocks, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt index 9911cd0c..5ecb9fec 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateByExternalIdParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -30,8 +30,8 @@ constructor( private val threshold: String, private val expiresAfter: Long?, private val expiresAfterUnit: ExpiresAfterUnit?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -65,9 +65,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -251,9 +251,9 @@ constructor( "CustomerCreditTopUpCreateByExternalIdBody{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -290,8 +290,8 @@ constructor( private var threshold: String? = null private var expiresAfter: Long? = null private var expiresAfterUnit: ExpiresAfterUnit? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -353,6 +353,11 @@ constructor( this.expiresAfterUnit = expiresAfterUnit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -363,29 +368,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -398,42 +416,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -441,6 +465,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerCreditTopUpCreateByExternalIdParams = CustomerCreditTopUpCreateByExternalIdParams( checkNotNull(externalCustomerId) { @@ -453,14 +485,8 @@ constructor( checkNotNull(threshold) { "`threshold` is required but was not set" }, expiresAfter, expiresAfterUnit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt index eda3fa77..3ac8cbc3 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpCreateParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -30,8 +30,8 @@ constructor( private val threshold: String, private val expiresAfter: Long?, private val expiresAfterUnit: ExpiresAfterUnit?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -65,9 +65,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -250,9 +250,9 @@ constructor( "CustomerCreditTopUpCreateBody{amount=$amount, currency=$currency, invoiceSettings=$invoiceSettings, perUnitCostBasis=$perUnitCostBasis, threshold=$threshold, expiresAfter=$expiresAfter, expiresAfterUnit=$expiresAfterUnit, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -289,8 +289,8 @@ constructor( private var threshold: String? = null private var expiresAfter: Long? = null private var expiresAfterUnit: ExpiresAfterUnit? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -347,6 +347,11 @@ constructor( this.expiresAfterUnit = expiresAfterUnit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -357,29 +362,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -392,42 +410,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -435,6 +459,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerCreditTopUpCreateParams = CustomerCreditTopUpCreateParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, @@ -445,14 +477,8 @@ constructor( checkNotNull(threshold) { "`threshold` is required but was not set" }, expiresAfter, expiresAfterUnit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt index 24a44daa..0e872ce1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteByExternalIdParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -15,8 +15,8 @@ class CustomerCreditTopUpDeleteByExternalIdParams constructor( private val externalCustomerId: String, private val topUpId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -29,9 +29,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -41,9 +41,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -74,8 +74,8 @@ constructor( private var externalCustomerId: String? = null private var topUpId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -97,6 +97,11 @@ constructor( fun topUpId(topUpId: String) = apply { this.topUpId = topUpId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -107,29 +112,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -142,42 +160,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -185,20 +209,22 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerCreditTopUpDeleteByExternalIdParams = CustomerCreditTopUpDeleteByExternalIdParams( checkNotNull(externalCustomerId) { "`externalCustomerId` is required but was not set" }, checkNotNull(topUpId) { "`topUpId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt index afdedf01..3b899a87 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpDeleteParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -15,8 +15,8 @@ class CustomerCreditTopUpDeleteParams constructor( private val customerId: String, private val topUpId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -29,9 +29,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -41,9 +41,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -74,8 +74,8 @@ constructor( private var customerId: String? = null private var topUpId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -92,6 +92,11 @@ constructor( fun topUpId(topUpId: String) = apply { this.topUpId = topUpId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -102,29 +107,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -137,42 +155,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -180,18 +204,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerCreditTopUpDeleteParams = CustomerCreditTopUpDeleteParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, checkNotNull(topUpId) { "`topUpId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt index edf54644..3c3b2f7b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -15,8 +14,8 @@ constructor( private val externalCustomerId: String, private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId @@ -25,15 +24,15 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -43,9 +42,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -75,8 +74,8 @@ constructor( private var externalCustomerId: String? = null private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from( @@ -102,6 +101,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -112,29 +116,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -147,33 +164,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditTopUpListByExternalIdParams = @@ -183,14 +206,8 @@ constructor( }, cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt index 7581cb1c..9c9c266a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerCreditTopUpListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -15,8 +14,8 @@ constructor( private val customerId: String, private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId @@ -25,15 +24,15 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -43,9 +42,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -75,8 +74,8 @@ constructor( private var customerId: String? = null private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerCreditTopUpListParams: CustomerCreditTopUpListParams) = apply { @@ -98,6 +97,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -108,29 +112,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -143,33 +160,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerCreditTopUpListParams = @@ -177,14 +200,8 @@ constructor( checkNotNull(customerId) { "`customerId` is required but was not set" }, cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt index 1e324250..7a5fd7ea 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerDeleteParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class CustomerDeleteParams constructor( private val customerId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var customerId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun customerId(customerId: String) = apply { this.customerId = customerId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerDeleteParams = CustomerDeleteParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt index c26a6d2c..365756ca 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchByExternalIdParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class CustomerFetchByExternalIdParams constructor( private val externalCustomerId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalCustomerId(): String = externalCustomerId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var externalCustomerId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerFetchByExternalIdParams: CustomerFetchByExternalIdParams) = @@ -74,6 +73,11 @@ constructor( this.externalCustomerId = externalCustomerId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -84,29 +88,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -119,33 +136,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerFetchByExternalIdParams = @@ -153,14 +176,8 @@ constructor( checkNotNull(externalCustomerId) { "`externalCustomerId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt index 28d9ea7d..0651dd23 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class CustomerFetchParams constructor( private val customerId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun customerId(): String = customerId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var customerId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerFetchParams: CustomerFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun customerId(customerId: String) = apply { this.customerId = customerId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerFetchParams = CustomerFetchParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt index cceb25fa..95ff41a2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -20,8 +19,8 @@ constructor( private val createdAtLte: OffsetDateTime?, private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun createdAtGt(): Optional = Optional.ofNullable(createdAtGt) @@ -36,32 +35,44 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -94,8 +105,8 @@ constructor( private var createdAtLte: OffsetDateTime? = null private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(customerListParams: CustomerListParams) = apply { @@ -126,6 +137,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -136,29 +152,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -171,33 +200,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): CustomerListParams = @@ -208,14 +243,8 @@ constructor( createdAtLte, cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt index 6cfbedbd..6b76265d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateByExternalIdParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -50,8 +50,8 @@ constructor( private val shippingAddress: ShippingAddress?, private val taxConfiguration: TaxConfiguration?, private val taxId: TaxId?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -114,9 +114,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -644,9 +644,9 @@ constructor( "CustomerUpdateByExternalIdBody{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -692,8 +692,8 @@ constructor( private var shippingAddress: ShippingAddress? = null private var taxConfiguration: TaxConfiguration? = null private var taxId: TaxId? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -939,6 +939,11 @@ constructor( */ fun taxId(taxId: TaxId) = apply { this.taxId = taxId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -949,29 +954,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -984,42 +1002,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -1027,6 +1051,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerUpdateByExternalIdParams = CustomerUpdateByExternalIdParams( checkNotNull(id) { "`id` is required but was not set" }, @@ -1046,14 +1078,8 @@ constructor( shippingAddress, taxConfiguration, taxId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt index fc53c684..513fb40f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/CustomerUpdateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -50,8 +50,8 @@ constructor( private val shippingAddress: ShippingAddress?, private val taxConfiguration: TaxConfiguration?, private val taxId: TaxId?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -114,9 +114,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -641,9 +641,9 @@ constructor( "CustomerUpdateBody{accountingSyncConfiguration=$accountingSyncConfiguration, additionalEmails=$additionalEmails, autoCollection=$autoCollection, billingAddress=$billingAddress, currency=$currency, email=$email, emailDelivery=$emailDelivery, externalCustomerId=$externalCustomerId, metadata=$metadata, name=$name, paymentProvider=$paymentProvider, paymentProviderId=$paymentProviderId, reportingConfiguration=$reportingConfiguration, shippingAddress=$shippingAddress, taxConfiguration=$taxConfiguration, taxId=$taxId, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -689,8 +689,8 @@ constructor( private var shippingAddress: ShippingAddress? = null private var taxConfiguration: TaxConfiguration? = null private var taxId: TaxId? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -933,6 +933,11 @@ constructor( */ fun taxId(taxId: TaxId) = apply { this.taxId = taxId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -943,29 +948,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -978,42 +996,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -1021,6 +1045,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): CustomerUpdateParams = CustomerUpdateParams( checkNotNull(customerId) { "`customerId` is required but was not set" }, @@ -1040,14 +1072,8 @@ constructor( shippingAddress, taxConfiguration, taxId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt index e17baa40..345148ba 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCloseParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class EventBackfillCloseParams constructor( private val backfillId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var backfillId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun backfillId(backfillId: String) = apply { this.backfillId = backfillId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventBackfillCloseParams = EventBackfillCloseParams( checkNotNull(backfillId) { "`backfillId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt index a98da204..25498bb0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillCreateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.OffsetDateTime @@ -26,8 +26,8 @@ constructor( private val deprecationFilter: String?, private val externalCustomerId: String?, private val replaceExistingEvents: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -59,9 +59,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = EventBackfillCreateBody.Builder::class) @NoAutoDetect @@ -253,9 +253,9 @@ constructor( "EventBackfillCreateBody{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, closeTime=$closeTime, customerId=$customerId, deprecationFilter=$deprecationFilter, externalCustomerId=$externalCustomerId, replaceExistingEvents=$replaceExistingEvents, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -291,8 +291,8 @@ constructor( private var deprecationFilter: String? = null private var externalCustomerId: String? = null private var replaceExistingEvents: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -355,6 +355,11 @@ constructor( this.replaceExistingEvents = replaceExistingEvents } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -365,29 +370,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -400,42 +418,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -443,6 +467,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventBackfillCreateParams = EventBackfillCreateParams( checkNotNull(timeframeEnd) { "`timeframeEnd` is required but was not set" }, @@ -452,14 +484,8 @@ constructor( deprecationFilter, externalCustomerId, replaceExistingEvents, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt index 45083a1b..dc31e0e0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class EventBackfillFetchParams constructor( private val backfillId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun backfillId(): String = backfillId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var backfillId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(eventBackfillFetchParams: EventBackfillFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun backfillId(backfillId: String) = apply { this.backfillId = backfillId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): EventBackfillFetchParams = EventBackfillFetchParams( checkNotNull(backfillId) { "`backfillId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt index 738e1923..350b03fc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -14,28 +13,28 @@ class EventBackfillListParams constructor( private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun cursor(): Optional = Optional.ofNullable(cursor) fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -64,8 +63,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(eventBackfillListParams: EventBackfillListParams) = apply { @@ -84,6 +83,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -94,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -129,47 +146,47 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): EventBackfillListParams = EventBackfillListParams( cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt index c68270d7..28d8f483 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventBackfillRevertParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class EventBackfillRevertParams constructor( private val backfillId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var backfillId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun backfillId(backfillId: String) = apply { this.backfillId = backfillId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventBackfillRevertParams = EventBackfillRevertParams( checkNotNull(backfillId) { "`backfillId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt index 0802ce80..9f726698 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventDeprecateParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class EventDeprecateParams constructor( private val eventId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var eventId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun eventId(eventId: String) = apply { this.eventId = eventId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventDeprecateParams = EventDeprecateParams( checkNotNull(eventId) { "`eventId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt index 8526b71c..c80a2b64 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventIngestParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.OffsetDateTime @@ -22,8 +22,8 @@ constructor( private val events: List, private val backfillId: String?, private val debug: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -38,15 +38,15 @@ constructor( return EventIngestBody(events, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.backfillId?.let { params.put("backfill_id", listOf(it.toString())) } - this.debug?.let { params.put("debug", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.backfillId?.let { queryParams.put("backfill_id", listOf(it.toString())) } + this.debug?.let { queryParams.put("debug", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } @JsonDeserialize(builder = EventIngestBody.Builder::class) @@ -125,9 +125,9 @@ constructor( "EventIngestBody{events=$events, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -159,8 +159,8 @@ constructor( private var events: MutableList = mutableListOf() private var backfillId: String? = null private var debug: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -189,6 +189,11 @@ constructor( /** Flag to enable additional debug information in the endpoint response */ fun debug(debug: Boolean) = apply { this.debug = debug } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -199,29 +204,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -234,42 +252,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -277,19 +301,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventIngestParams = EventIngestParams( checkNotNull(events) { "`events` is required but was not set" }.toImmutable(), backfillId, debug, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt index cfd9ffb6..64f65f83 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventSearchParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.OffsetDateTime @@ -22,8 +22,8 @@ constructor( private val eventIds: List, private val timeframeEnd: OffsetDateTime?, private val timeframeStart: OffsetDateTime?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -43,9 +43,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = EventSearchBody.Builder::class) @NoAutoDetect @@ -173,9 +173,9 @@ constructor( "EventSearchBody{eventIds=$eventIds, timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -207,8 +207,8 @@ constructor( private var eventIds: MutableList = mutableListOf() private var timeframeEnd: OffsetDateTime? = null private var timeframeStart: OffsetDateTime? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -252,6 +252,11 @@ constructor( this.timeframeStart = timeframeStart } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -262,29 +267,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -297,42 +315,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -340,19 +364,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventSearchParams = EventSearchParams( checkNotNull(eventIds) { "`eventIds` is required but was not set" }.toImmutable(), timeframeEnd, timeframeStart, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt index c01a7a2e..a518d6bd 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.OffsetDateTime @@ -25,8 +25,8 @@ constructor( private val timestamp: OffsetDateTime, private val customerId: String?, private val externalCustomerId: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -54,9 +54,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -206,9 +206,9 @@ constructor( "EventUpdateBody{eventName=$eventName, properties=$properties, timestamp=$timestamp, customerId=$customerId, externalCustomerId=$externalCustomerId, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -243,8 +243,8 @@ constructor( private var timestamp: OffsetDateTime? = null private var customerId: String? = null private var externalCustomerId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -286,6 +286,11 @@ constructor( this.externalCustomerId = externalCustomerId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -296,29 +301,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -331,42 +349,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -374,6 +398,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): EventUpdateParams = EventUpdateParams( checkNotNull(eventId) { "`eventId` is required but was not set" }, @@ -382,14 +414,8 @@ constructor( checkNotNull(timestamp) { "`timestamp` is required but was not set" }, customerId, externalCustomerId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt index 7b621d0d..0c34e275 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/EventVolumeListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -18,8 +17,8 @@ constructor( private val cursor: String?, private val limit: Long?, private val timeframeEnd: OffsetDateTime?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun timeframeStart(): OffsetDateTime = timeframeStart @@ -30,26 +29,32 @@ constructor( fun timeframeEnd(): Optional = Optional.ofNullable(timeframeEnd) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.timeframeStart.let { - params.put("timeframe_start", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_start", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } this.timeframeEnd?.let { - params.put("timeframe_end", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_end", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -80,8 +85,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null private var timeframeEnd: OffsetDateTime? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(eventVolumeListParams: EventVolumeListParams) = apply { @@ -119,6 +124,11 @@ constructor( */ fun timeframeEnd(timeframeEnd: OffsetDateTime) = apply { this.timeframeEnd = timeframeEnd } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -129,29 +139,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -164,33 +187,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): EventVolumeListParams = @@ -199,14 +228,8 @@ constructor( cursor, limit, timeframeEnd, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt index ab43364d..43d05279 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceCreateParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -34,8 +34,8 @@ constructor( private val memo: String?, private val metadata: Metadata?, private val willAutoIssue: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -76,9 +76,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = InvoiceCreateBody.Builder::class) @NoAutoDetect @@ -304,9 +304,9 @@ constructor( "InvoiceCreateBody{currency=$currency, invoiceDate=$invoiceDate, lineItems=$lineItems, netTerms=$netTerms, customerId=$customerId, discount=$discount, externalCustomerId=$externalCustomerId, memo=$memo, metadata=$metadata, willAutoIssue=$willAutoIssue, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -345,8 +345,8 @@ constructor( private var memo: String? = null private var metadata: Metadata? = null private var willAutoIssue: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -444,6 +444,11 @@ constructor( */ fun willAutoIssue(willAutoIssue: Boolean) = apply { this.willAutoIssue = willAutoIssue } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -454,29 +459,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -489,42 +507,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -532,6 +556,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceCreateParams = InvoiceCreateParams( checkNotNull(currency) { "`currency` is required but was not set" }, @@ -544,14 +576,8 @@ constructor( memo, metadata, willAutoIssue, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt index a4da88b1..9d026254 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class InvoiceFetchParams constructor( private val invoiceId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun invoiceId(): String = invoiceId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var invoiceId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(invoiceFetchParams: InvoiceFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun invoiceId(invoiceId: String) = apply { this.invoiceId = invoiceId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): InvoiceFetchParams = InvoiceFetchParams( checkNotNull(invoiceId) { "`invoiceId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt index 3c5a0ac2..dd12e704 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParams.kt @@ -2,35 +2,34 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class InvoiceFetchUpcomingParams constructor( private val subscriptionId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun subscriptionId(): String = subscriptionId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.subscriptionId.let { params.put("subscription_id", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.subscriptionId.let { queryParams.put("subscription_id", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -58,8 +57,8 @@ constructor( class Builder { private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(invoiceFetchUpcomingParams: InvoiceFetchUpcomingParams) = apply { @@ -70,6 +69,11 @@ constructor( fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -80,29 +84,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -115,46 +132,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): InvoiceFetchUpcomingParams = InvoiceFetchUpcomingParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt index 92070983..911aada5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceIssueParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -20,8 +20,8 @@ class InvoiceIssueParams constructor( private val invoiceId: String, private val synchronous: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -34,9 +34,9 @@ constructor( return InvoiceIssueBody(synchronous, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -132,9 +132,9 @@ constructor( "InvoiceIssueBody{synchronous=$synchronous, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -165,8 +165,8 @@ constructor( private var invoiceId: String? = null private var synchronous: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -188,6 +188,11 @@ constructor( */ fun synchronous(synchronous: Boolean) = apply { this.synchronous = synchronous } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -198,29 +203,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -233,42 +251,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -276,18 +300,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceIssueParams = InvoiceIssueParams( checkNotNull(invoiceId) { "`invoiceId` is required but was not set" }, synchronous, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt index 0b74dd35..51d019d4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceLineItemCreateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.LocalDate @@ -24,8 +24,8 @@ constructor( private val name: String, private val quantity: Double, private val startDate: LocalDate, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -54,9 +54,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = InvoiceLineItemCreateBody.Builder::class) @NoAutoDetect @@ -196,9 +196,9 @@ constructor( "InvoiceLineItemCreateBody{amount=$amount, endDate=$endDate, invoiceId=$invoiceId, name=$name, quantity=$quantity, startDate=$startDate, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -233,8 +233,8 @@ constructor( private var name: String? = null private var quantity: Double? = null private var startDate: LocalDate? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -271,6 +271,11 @@ constructor( /** A date string to specify the line item's start date in the customer's timezone. */ fun startDate(startDate: LocalDate) = apply { this.startDate = startDate } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -281,29 +286,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -316,42 +334,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -359,6 +383,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceLineItemCreateParams = InvoiceLineItemCreateParams( checkNotNull(amount) { "`amount` is required but was not set" }, @@ -367,14 +399,8 @@ constructor( checkNotNull(name) { "`name` is required but was not set" }, checkNotNull(quantity) { "`quantity` is required but was not set" }, checkNotNull(startDate) { "`startDate` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt index 7ad55f76..9f6a03d6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceListParams.kt @@ -3,12 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -39,8 +39,8 @@ constructor( private val limit: Long?, private val status: List?, private val subscriptionId: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun amount(): Optional = Optional.ofNullable(amount) @@ -81,57 +81,59 @@ constructor( fun subscriptionId(): Optional = Optional.ofNullable(subscriptionId) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.amount?.let { params.put("amount", listOf(it.toString())) } - this.amountGt?.let { params.put("amount[gt]", listOf(it.toString())) } - this.amountLt?.let { params.put("amount[lt]", listOf(it.toString())) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.customerId?.let { params.put("customer_id", listOf(it.toString())) } - this.dateType?.let { params.put("date_type", listOf(it.toString())) } - this.dueDate?.let { params.put("due_date", listOf(it.toString())) } - this.dueDateWindow?.let { params.put("due_date_window", listOf(it.toString())) } - this.dueDateGt?.let { params.put("due_date[gt]", listOf(it.toString())) } - this.dueDateLt?.let { params.put("due_date[lt]", listOf(it.toString())) } - this.externalCustomerId?.let { params.put("external_customer_id", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.amount?.let { queryParams.put("amount", listOf(it.toString())) } + this.amountGt?.let { queryParams.put("amount[gt]", listOf(it.toString())) } + this.amountLt?.let { queryParams.put("amount[lt]", listOf(it.toString())) } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.customerId?.let { queryParams.put("customer_id", listOf(it.toString())) } + this.dateType?.let { queryParams.put("date_type", listOf(it.toString())) } + this.dueDate?.let { queryParams.put("due_date", listOf(it.toString())) } + this.dueDateWindow?.let { queryParams.put("due_date_window", listOf(it.toString())) } + this.dueDateGt?.let { queryParams.put("due_date[gt]", listOf(it.toString())) } + this.dueDateLt?.let { queryParams.put("due_date[lt]", listOf(it.toString())) } + this.externalCustomerId?.let { + queryParams.put("external_customer_id", listOf(it.toString())) + } this.invoiceDateGt?.let { - params.put( + queryParams.put( "invoice_date[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.invoiceDateGte?.let { - params.put( + queryParams.put( "invoice_date[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.invoiceDateLt?.let { - params.put( + queryParams.put( "invoice_date[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } this.invoiceDateLte?.let { - params.put( + queryParams.put( "invoice_date[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) ) } - this.isRecurring?.let { params.put("is_recurring", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.status?.let { params.put("status[]", it.map(Any::toString)) } - this.subscriptionId?.let { params.put("subscription_id", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.isRecurring?.let { queryParams.put("is_recurring", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.status?.let { queryParams.put("status[]", it.map(Any::toString)) } + this.subscriptionId?.let { queryParams.put("subscription_id", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -177,8 +179,8 @@ constructor( private var limit: Long? = null private var status: MutableList = mutableListOf() private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(invoiceListParams: InvoiceListParams) = apply { @@ -263,6 +265,11 @@ constructor( fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -273,29 +280,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -308,33 +328,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): InvoiceListParams = @@ -358,14 +384,8 @@ constructor( limit, if (status.size == 0) null else status.toImmutable(), subscriptionId, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt index 8f8826f2..94b83704 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceMarkPaidParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.LocalDate @@ -23,8 +23,8 @@ constructor( private val paymentReceivedDate: LocalDate, private val externalId: String?, private val notes: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -46,9 +46,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -162,9 +162,9 @@ constructor( "InvoiceMarkPaidBody{paymentReceivedDate=$paymentReceivedDate, externalId=$externalId, notes=$notes, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -197,8 +197,8 @@ constructor( private var paymentReceivedDate: LocalDate? = null private var externalId: String? = null private var notes: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -225,6 +225,11 @@ constructor( /** An optional note to associate with the payment. */ fun notes(notes: String) = apply { this.notes = notes } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -235,29 +240,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -270,42 +288,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -313,6 +337,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceMarkPaidParams = InvoiceMarkPaidParams( checkNotNull(invoiceId) { "`invoiceId` is required but was not set" }, @@ -321,14 +353,8 @@ constructor( }, externalId, notes, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt index c20137cf..8c914ca9 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -20,8 +20,8 @@ class InvoiceUpdateParams constructor( private val invoiceId: String, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -34,9 +34,9 @@ constructor( return InvoiceUpdateBody(metadata, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -129,9 +129,9 @@ constructor( "InvoiceUpdateBody{metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -162,8 +162,8 @@ constructor( private var invoiceId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -184,6 +184,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -194,29 +199,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -229,42 +247,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -272,18 +296,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceUpdateParams = InvoiceUpdateParams( checkNotNull(invoiceId) { "`invoiceId` is required but was not set" }, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt index 911206e4..b4d6b3f0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/InvoiceVoidInvoiceParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class InvoiceVoidInvoiceParams constructor( private val invoiceId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var invoiceId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -83,6 +83,11 @@ constructor( fun invoiceId(invoiceId: String) = apply { this.invoiceId = invoiceId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -93,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -128,42 +146,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -171,17 +195,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): InvoiceVoidInvoiceParams = InvoiceVoidInvoiceParams( checkNotNull(invoiceId) { "`invoiceId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt index ae61fa2f..1a4f0e52 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemCreateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -18,8 +18,8 @@ import java.util.Objects class ItemCreateParams constructor( private val name: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -30,9 +30,9 @@ constructor( return ItemCreateBody(name, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = ItemCreateBody.Builder::class) @NoAutoDetect @@ -112,9 +112,9 @@ constructor( "ItemCreateBody{name=$name, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -144,8 +144,8 @@ constructor( class Builder { private var name: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -159,6 +159,11 @@ constructor( /** The name of the item. */ fun name(name: String) = apply { this.name = name } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -169,29 +174,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -204,42 +222,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -247,17 +271,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): ItemCreateParams = ItemCreateParams( checkNotNull(name) { "`name` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt index 7f6aa5b1..cd155518 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class ItemFetchParams constructor( private val itemId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun itemId(): String = itemId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var itemId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(itemFetchParams: ItemFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun itemId(itemId: String) = apply { this.itemId = itemId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): ItemFetchParams = ItemFetchParams( checkNotNull(itemId) { "`itemId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt index 352e1cc4..0b632966 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -14,28 +13,28 @@ class ItemListParams constructor( private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun cursor(): Optional = Optional.ofNullable(cursor) fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -64,8 +63,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(itemListParams: ItemListParams) = apply { @@ -84,6 +83,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -94,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -129,47 +146,47 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): ItemListParams = ItemListParams( cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt index 621eec14..f343603d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/ItemUpdateParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -25,8 +25,8 @@ constructor( private val itemId: String, private val externalConnections: List?, private val name: String?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -46,9 +46,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -150,9 +150,9 @@ constructor( "ItemUpdateBody{externalConnections=$externalConnections, name=$name, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -184,8 +184,8 @@ constructor( private var itemId: String? = null private var externalConnections: MutableList = mutableListOf() private var name: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -211,6 +211,11 @@ constructor( fun name(name: String) = apply { this.name = name } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -221,29 +226,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -256,42 +274,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -299,19 +323,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): ItemUpdateParams = ItemUpdateParams( checkNotNull(itemId) { "`itemId` is required but was not set" }, if (externalConnections.size == 0) null else externalConnections.toImmutable(), name, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt index 7aedb7aa..12cf6882 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricCreateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -23,8 +23,8 @@ constructor( private val name: String, private val sql: String, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -50,9 +50,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = MetricCreateBody.Builder::class) @NoAutoDetect @@ -182,9 +182,9 @@ constructor( "MetricCreateBody{description=$description, itemId=$itemId, name=$name, sql=$sql, metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -218,8 +218,8 @@ constructor( private var name: String? = null private var sql: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -253,6 +253,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -263,29 +268,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -298,42 +316,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -341,6 +365,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): MetricCreateParams = MetricCreateParams( description, @@ -348,14 +380,8 @@ constructor( checkNotNull(name) { "`name` is required but was not set" }, checkNotNull(sql) { "`sql` is required but was not set" }, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt index 6c8a9070..6d58c7fb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class MetricFetchParams constructor( private val metricId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun metricId(): String = metricId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var metricId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(metricFetchParams: MetricFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun metricId(metricId: String) = apply { this.metricId = metricId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): MetricFetchParams = MetricFetchParams( checkNotNull(metricId) { "`metricId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt index a2fbc0cf..a2b0eefc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -20,8 +19,8 @@ constructor( private val createdAtLte: OffsetDateTime?, private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun createdAtGt(): Optional = Optional.ofNullable(createdAtGt) @@ -36,32 +35,44 @@ constructor( fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -94,8 +105,8 @@ constructor( private var createdAtLte: OffsetDateTime? = null private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(metricListParams: MetricListParams) = apply { @@ -126,6 +137,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -136,29 +152,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -171,33 +200,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): MetricListParams = @@ -208,14 +243,8 @@ constructor( createdAtLte, cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt index aeccb04b..47eec28f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/MetricUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -20,8 +20,8 @@ class MetricUpdateParams constructor( private val metricId: String, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -34,9 +34,9 @@ constructor( return MetricUpdateBody(metadata, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -129,9 +129,9 @@ constructor( "MetricUpdateBody{metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -162,8 +162,8 @@ constructor( private var metricId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -184,6 +184,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -194,29 +199,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -229,42 +247,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -272,18 +296,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): MetricUpdateParams = MetricUpdateParams( checkNotNull(metricId) { "`metricId` is required but was not set" }, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt index 0d048e88..2f450f2f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanCreateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -41,8 +41,8 @@ constructor( private val metadata: Metadata?, private val netTerms: Long?, private val status: Status?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -77,9 +77,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = PlanCreateBody.Builder::class) @NoAutoDetect @@ -260,9 +260,9 @@ constructor( "PlanCreateBody{currency=$currency, name=$name, prices=$prices, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, metadata=$metadata, netTerms=$netTerms, status=$status, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -299,8 +299,8 @@ constructor( private var metadata: Metadata? = null private var netTerms: Long? = null private var status: Status? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -364,6 +364,11 @@ constructor( */ fun status(status: Status) = apply { this.status = status } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -374,29 +379,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -409,42 +427,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -452,6 +476,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PlanCreateParams = PlanCreateParams( checkNotNull(currency) { "`currency` is required but was not set" }, @@ -462,14 +494,8 @@ constructor( metadata, netTerms, status, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt index 1329267b..f4decaa6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class PlanExternalPlanIdFetchParams constructor( private val externalPlanId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalPlanId(): String = externalPlanId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var externalPlanId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(planExternalPlanIdFetchParams: PlanExternalPlanIdFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun externalPlanId(externalPlanId: String) = apply { this.externalPlanId = externalPlanId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PlanExternalPlanIdFetchParams = PlanExternalPlanIdFetchParams( checkNotNull(externalPlanId) { "`externalPlanId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt index 24db4be1..de25f5aa 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanExternalPlanIdUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -21,8 +21,8 @@ constructor( private val otherExternalPlanId: String, private val externalPlanId: String?, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -41,9 +41,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -160,9 +160,9 @@ constructor( "PlanExternalPlanIdUpdateBody{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -194,8 +194,8 @@ constructor( private var otherExternalPlanId: String? = null private var externalPlanId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -226,6 +226,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -236,29 +241,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -271,42 +289,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -314,6 +338,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PlanExternalPlanIdUpdateParams = PlanExternalPlanIdUpdateParams( checkNotNull(otherExternalPlanId) { @@ -321,14 +353,8 @@ constructor( }, externalPlanId, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt index bb732b96..eb9bc4d1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class PlanFetchParams constructor( private val planId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun planId(): String = planId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var planId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(planFetchParams: PlanFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun planId(planId: String) = apply { this.planId = planId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PlanFetchParams = PlanFetchParams( checkNotNull(planId) { "`planId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt index 51925aca..69c662a1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanListParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -26,8 +25,8 @@ constructor( private val cursor: String?, private val limit: Long?, private val status: Status?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun createdAtGt(): Optional = Optional.ofNullable(createdAtGt) @@ -44,33 +43,45 @@ constructor( fun status(): Optional = Optional.ofNullable(status) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.status?.let { params.put("status", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.status?.let { queryParams.put("status", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -104,8 +115,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null private var status: Status? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(planListParams: PlanListParams) = apply { @@ -140,6 +151,11 @@ constructor( /** The plan status to filter to ('active', 'archived', or 'draft'). */ fun status(status: Status) = apply { this.status = status } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -150,29 +166,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -185,33 +214,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PlanListParams = @@ -223,14 +258,8 @@ constructor( cursor, limit, status, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt index f9984828..5494be3d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PlanUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -21,8 +21,8 @@ constructor( private val planId: String, private val externalPlanId: String?, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -41,9 +41,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -160,9 +160,9 @@ constructor( "PlanUpdateBody{externalPlanId=$externalPlanId, metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -194,8 +194,8 @@ constructor( private var planId: String? = null private var externalPlanId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -224,6 +224,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -234,29 +239,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -269,42 +287,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -312,19 +336,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PlanUpdateParams = PlanUpdateParams( checkNotNull(planId) { "`planId` is required but was not set" }, externalPlanId, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt index 5fcfea21..3d33c946 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceCreateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -23,6 +21,8 @@ import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -58,8 +58,8 @@ constructor( private val newFloatingMatrixWithDisplayNamePrice: NewFloatingMatrixWithDisplayNamePrice?, private val newFloatingBulkWithProrationPrice: NewFloatingBulkWithProrationPrice?, private val newFloatingGroupedTieredPackagePrice: NewFloatingGroupedTieredPackagePrice?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun newFloatingUnitPrice(): Optional = @@ -167,9 +167,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(using = PriceCreateBody.Deserializer::class) @JsonSerialize(using = PriceCreateBody.Serializer::class) @@ -1100,9 +1100,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -1164,8 +1164,8 @@ constructor( private var newFloatingBulkWithProrationPrice: NewFloatingBulkWithProrationPrice? = null private var newFloatingGroupedTieredPackagePrice: NewFloatingGroupedTieredPackagePrice? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(priceCreateParams: PriceCreateParams) = apply { @@ -1893,6 +1893,11 @@ constructor( this.newFloatingGroupedTieredPackagePrice = newFloatingGroupedTieredPackagePrice } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -1903,29 +1908,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -1938,33 +1956,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PriceCreateParams = @@ -1993,14 +2017,8 @@ constructor( newFloatingMatrixWithDisplayNamePrice, newFloatingBulkWithProrationPrice, newFloatingGroupedTieredPackagePrice, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt index 75e77edd..7f79c121 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceEvaluateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.OffsetDateTime @@ -26,8 +26,8 @@ constructor( private val externalCustomerId: String?, private val filter: String?, private val groupingKeys: List?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -58,9 +58,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -226,9 +226,9 @@ constructor( "PriceEvaluateBody{timeframeEnd=$timeframeEnd, timeframeStart=$timeframeStart, customerId=$customerId, externalCustomerId=$externalCustomerId, filter=$filter, groupingKeys=$groupingKeys, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -264,8 +264,8 @@ constructor( private var externalCustomerId: String? = null private var filter: String? = null private var groupingKeys: MutableList = mutableListOf() - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -324,6 +324,11 @@ constructor( */ fun addGroupingKey(groupingKey: String) = apply { this.groupingKeys.add(groupingKey) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -334,29 +339,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -369,42 +387,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -412,6 +436,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PriceEvaluateParams = PriceEvaluateParams( checkNotNull(priceId) { "`priceId` is required but was not set" }, @@ -421,14 +453,8 @@ constructor( externalCustomerId, filter, if (groupingKeys.size == 0) null else groupingKeys.toImmutable(), - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt index 4b50e154..b9214602 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class PriceExternalPriceIdFetchParams constructor( private val externalPriceId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun externalPriceId(): String = externalPriceId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var externalPriceId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(priceExternalPriceIdFetchParams: PriceExternalPriceIdFetchParams) = @@ -74,6 +73,11 @@ constructor( this.externalPriceId = externalPriceId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -84,29 +88,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -119,46 +136,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PriceExternalPriceIdFetchParams = PriceExternalPriceIdFetchParams( checkNotNull(externalPriceId) { "`externalPriceId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt index 05a1c419..09f1741a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceExternalPriceIdUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -20,8 +20,8 @@ class PriceExternalPriceIdUpdateParams constructor( private val externalPriceId: String, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -34,9 +34,9 @@ constructor( return PriceExternalPriceIdUpdateBody(metadata, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -130,9 +130,9 @@ constructor( "PriceExternalPriceIdUpdateBody{metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -163,8 +163,8 @@ constructor( private var externalPriceId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -188,6 +188,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -198,29 +203,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -233,42 +251,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -276,18 +300,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PriceExternalPriceIdUpdateParams = PriceExternalPriceIdUpdateParams( checkNotNull(externalPriceId) { "`externalPriceId` is required but was not set" }, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt index a95a2e11..1d0b2caf 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class PriceFetchParams constructor( private val priceId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun priceId(): String = priceId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var priceId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(priceFetchParams: PriceFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun priceId(priceId: String) = apply { this.priceId = priceId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PriceFetchParams = PriceFetchParams( checkNotNull(priceId) { "`priceId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt index 179b401d..6122e182 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceListParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects import java.util.Optional @@ -14,28 +13,28 @@ class PriceListParams constructor( private val cursor: String?, private val limit: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun cursor(): Optional = Optional.ofNullable(cursor) fun limit(): Optional = Optional.ofNullable(limit) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -64,8 +63,8 @@ constructor( private var cursor: String? = null private var limit: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(priceListParams: PriceListParams) = apply { @@ -84,6 +83,11 @@ constructor( /** The number of items to fetch. Defaults to 20. */ fun limit(limit: Long) = apply { this.limit = limit } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -94,29 +98,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -129,47 +146,47 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): PriceListParams = PriceListParams( cursor, limit, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt index 0f638981..79b57dee 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/PriceUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -20,8 +20,8 @@ class PriceUpdateParams constructor( private val priceId: String, private val metadata: Metadata?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -34,9 +34,9 @@ constructor( return PriceUpdateBody(metadata, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -129,9 +129,9 @@ constructor( "PriceUpdateBody{metadata=$metadata, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -162,8 +162,8 @@ constructor( private var priceId: String? = null private var metadata: Metadata? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -184,6 +184,11 @@ constructor( */ fun metadata(metadata: Metadata) = apply { this.metadata = metadata } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -194,29 +199,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -229,42 +247,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -272,18 +296,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): PriceUpdateParams = PriceUpdateParams( checkNotNull(priceId) { "`priceId` is required but was not set" }, metadata, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt index 9e93e9c5..7b2337fa 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCancelParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -26,8 +26,8 @@ constructor( private val subscriptionId: String, private val cancelOption: CancelOption, private val cancellationDate: OffsetDateTime?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -46,9 +46,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -158,9 +158,9 @@ constructor( "SubscriptionCancelBody{cancelOption=$cancelOption, cancellationDate=$cancellationDate, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -192,8 +192,8 @@ constructor( private var subscriptionId: String? = null private var cancelOption: CancelOption? = null private var cancellationDate: OffsetDateTime? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -219,6 +219,11 @@ constructor( this.cancellationDate = cancellationDate } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -229,29 +234,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -264,42 +282,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -307,19 +331,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionCancelParams = SubscriptionCancelParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, checkNotNull(cancelOption) { "`cancelOption` is required but was not set" }, cancellationDate, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt index 9eae0ed2..e98dcb2b 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionCreateParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -63,8 +63,8 @@ constructor( private val replacePrices: List?, private val startDate: OffsetDateTime?, private val trialDurationDays: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -168,9 +168,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams @JsonDeserialize(builder = SubscriptionCreateBody.Builder::class) @NoAutoDetect @@ -699,9 +699,9 @@ constructor( "SubscriptionCreateBody{addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithSubscriptionStartDate=$alignBillingWithSubscriptionStartDate, autoCollection=$autoCollection, awsRegion=$awsRegion, billingCycleAnchorConfiguration=$billingCycleAnchorConfiguration, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, customerId=$customerId, defaultInvoiceMemo=$defaultInvoiceMemo, endDate=$endDate, externalCustomerId=$externalCustomerId, externalMarketplace=$externalMarketplace, externalMarketplaceReportingId=$externalMarketplaceReportingId, externalPlanId=$externalPlanId, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, startDate=$startDate, trialDurationDays=$trialDurationDays, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -759,8 +759,8 @@ constructor( private var replacePrices: MutableList = mutableListOf() private var startDate: OffsetDateTime? = null private var trialDurationDays: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -1028,6 +1028,11 @@ constructor( this.trialDurationDays = trialDurationDays } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -1038,29 +1043,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -1073,42 +1091,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -1116,6 +1140,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionCreateParams = SubscriptionCreateParams( if (addAdjustments.size == 0) null else addAdjustments.toImmutable(), @@ -1147,14 +1179,8 @@ constructor( if (replacePrices.size == 0) null else replacePrices.toImmutable(), startDate, trialDurationDays, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt index 8bee2164..83e5c249 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchCostsParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -24,8 +23,8 @@ constructor( private val timeframeEnd: OffsetDateTime?, private val timeframeStart: OffsetDateTime?, private val viewMode: ViewMode?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun subscriptionId(): String = subscriptionId @@ -38,21 +37,27 @@ constructor( fun viewMode(): Optional = Optional.ofNullable(viewMode) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.currency?.let { params.put("currency", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.currency?.let { queryParams.put("currency", listOf(it.toString())) } this.timeframeEnd?.let { - params.put("timeframe_end", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_end", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.timeframeStart?.let { - params.put("timeframe_start", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_start", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.viewMode?.let { params.put("view_mode", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.viewMode?.let { queryParams.put("view_mode", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -62,9 +67,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -96,8 +101,8 @@ constructor( private var timeframeEnd: OffsetDateTime? = null private var timeframeStart: OffsetDateTime? = null private var viewMode: ViewMode? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(subscriptionFetchCostsParams: SubscriptionFetchCostsParams) = apply { @@ -130,6 +135,11 @@ constructor( */ fun viewMode(viewMode: ViewMode) = apply { this.viewMode = viewMode } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -140,29 +150,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -175,33 +198,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): SubscriptionFetchCostsParams = @@ -211,14 +240,8 @@ constructor( timeframeEnd, timeframeStart, viewMode, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt index 56e8dd36..99844bc0 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchParams.kt @@ -2,25 +2,24 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class SubscriptionFetchParams constructor( private val subscriptionId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun subscriptionId(): String = subscriptionId - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -29,9 +28,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -59,8 +58,8 @@ constructor( class Builder { private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(subscriptionFetchParams: SubscriptionFetchParams) = apply { @@ -71,6 +70,11 @@ constructor( fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -81,29 +85,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -116,46 +133,46 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): SubscriptionFetchParams = SubscriptionFetchParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt index bc63fcea..0d65f8da 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParams.kt @@ -2,10 +2,9 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import java.time.format.DateTimeFormatter @@ -21,8 +20,8 @@ constructor( private val startDateGte: OffsetDateTime?, private val startDateLt: OffsetDateTime?, private val startDateLte: OffsetDateTime?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun subscriptionId(): String = subscriptionId @@ -39,27 +38,39 @@ constructor( fun startDateLte(): Optional = Optional.ofNullable(startDateLte) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } this.startDateGt?.let { - params.put("start_date[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "start_date[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.startDateGte?.let { - params.put("start_date[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "start_date[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.startDateLt?.let { - params.put("start_date[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "start_date[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.startDateLte?.let { - params.put("start_date[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "start_date[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -69,9 +80,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -105,8 +116,8 @@ constructor( private var startDateGte: OffsetDateTime? = null private var startDateLt: OffsetDateTime? = null private var startDateLte: OffsetDateTime? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(subscriptionFetchScheduleParams: SubscriptionFetchScheduleParams) = @@ -141,6 +152,11 @@ constructor( fun startDateLte(startDateLte: OffsetDateTime) = apply { this.startDateLte = startDateLte } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -151,29 +167,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -186,33 +215,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): SubscriptionFetchScheduleParams = @@ -224,14 +259,8 @@ constructor( startDateGte, startDateLt, startDateLte, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt index 0e585128..16d210a1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionFetchUsageParams.kt @@ -3,13 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* import java.time.OffsetDateTime @@ -30,8 +29,8 @@ constructor( private val timeframeEnd: OffsetDateTime?, private val timeframeStart: OffsetDateTime?, private val viewMode: ViewMode?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun subscriptionId(): String = subscriptionId @@ -56,29 +55,41 @@ constructor( fun viewMode(): Optional = Optional.ofNullable(viewMode) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() - this.billableMetricId?.let { params.put("billable_metric_id", listOf(it.toString())) } - this.firstDimensionKey?.let { params.put("first_dimension_key", listOf(it.toString())) } - this.firstDimensionValue?.let { params.put("first_dimension_value", listOf(it.toString())) } - this.granularity?.let { params.put("granularity", listOf(it.toString())) } - this.groupBy?.let { params.put("group_by", listOf(it.toString())) } - this.secondDimensionKey?.let { params.put("second_dimension_key", listOf(it.toString())) } + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() + this.billableMetricId?.let { queryParams.put("billable_metric_id", listOf(it.toString())) } + this.firstDimensionKey?.let { + queryParams.put("first_dimension_key", listOf(it.toString())) + } + this.firstDimensionValue?.let { + queryParams.put("first_dimension_value", listOf(it.toString())) + } + this.granularity?.let { queryParams.put("granularity", listOf(it.toString())) } + this.groupBy?.let { queryParams.put("group_by", listOf(it.toString())) } + this.secondDimensionKey?.let { + queryParams.put("second_dimension_key", listOf(it.toString())) + } this.secondDimensionValue?.let { - params.put("second_dimension_value", listOf(it.toString())) + queryParams.put("second_dimension_value", listOf(it.toString())) } this.timeframeEnd?.let { - params.put("timeframe_end", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_end", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.timeframeStart?.let { - params.put("timeframe_start", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "timeframe_start", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } - this.viewMode?.let { params.put("view_mode", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + this.viewMode?.let { queryParams.put("view_mode", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } fun getPathParam(index: Int): String { @@ -88,9 +99,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -128,8 +139,8 @@ constructor( private var timeframeEnd: OffsetDateTime? = null private var timeframeStart: OffsetDateTime? = null private var viewMode: ViewMode? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(subscriptionFetchUsageParams: SubscriptionFetchUsageParams) = apply { @@ -196,6 +207,11 @@ constructor( */ fun viewMode(viewMode: ViewMode) = apply { this.viewMode = viewMode } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -206,29 +222,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -241,33 +270,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): SubscriptionFetchUsageParams = @@ -283,14 +318,8 @@ constructor( timeframeEnd, timeframeStart, viewMode, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt index b1e22ad7..805a2ce2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionListParams.kt @@ -3,12 +3,12 @@ package com.withorb.api.models import com.fasterxml.jackson.annotation.JsonCreator -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -28,8 +28,8 @@ constructor( private val externalCustomerId: String?, private val limit: Long?, private val status: Status?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { fun createdAtGt(): Optional = Optional.ofNullable(createdAtGt) @@ -50,35 +50,49 @@ constructor( fun status(): Optional = Optional.ofNullable(status) - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders @JvmSynthetic - internal fun getQueryParams(): Map> { - val params = mutableMapOf>() + internal fun getQueryParams(): QueryParams { + val queryParams = QueryParams.builder() this.createdAtGt?.let { - params.put("created_at[gt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtGte?.let { - params.put("created_at[gte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[gte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLt?.let { - params.put("created_at[lt]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) + queryParams.put( + "created_at[lt]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) } this.createdAtLte?.let { - params.put("created_at[lte]", listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it))) - } - this.cursor?.let { params.put("cursor", listOf(it.toString())) } - this.customerId?.let { params.put("customer_id[]", it.map(Any::toString)) } - this.externalCustomerId?.let { params.put("external_customer_id", listOf(it.toString())) } - this.limit?.let { params.put("limit", listOf(it.toString())) } - this.status?.let { params.put("status", listOf(it.toString())) } - params.putAll(additionalQueryParams) - return params.toImmutable() + queryParams.put( + "created_at[lte]", + listOf(DateTimeFormatter.ISO_OFFSET_DATE_TIME.format(it)) + ) + } + this.cursor?.let { queryParams.put("cursor", listOf(it.toString())) } + this.customerId?.let { queryParams.put("customer_id[]", it.map(Any::toString)) } + this.externalCustomerId?.let { + queryParams.put("external_customer_id", listOf(it.toString())) + } + this.limit?.let { queryParams.put("limit", listOf(it.toString())) } + this.status?.let { queryParams.put("status", listOf(it.toString())) } + queryParams.putAll(additionalQueryParams) + return queryParams.build() } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -114,8 +128,8 @@ constructor( private var externalCustomerId: String? = null private var limit: Long? = null private var status: Status? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(subscriptionListParams: SubscriptionListParams) = apply { @@ -162,6 +176,11 @@ constructor( fun status(status: Status) = apply { this.status = status } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -172,29 +191,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -207,33 +239,39 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): SubscriptionListParams = @@ -247,14 +285,8 @@ constructor( externalCustomerId, limit, status, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt index b2ca49de..30660d27 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionPriceIntervalsParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -39,8 +39,8 @@ constructor( private val addAdjustments: List?, private val edit: List?, private val editAdjustments: List?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -65,9 +65,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -192,9 +192,9 @@ constructor( "SubscriptionPriceIntervalsBody{add=$add, addAdjustments=$addAdjustments, edit=$edit, editAdjustments=$editAdjustments, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -228,8 +228,8 @@ constructor( private var addAdjustments: MutableList = mutableListOf() private var edit: MutableList = mutableListOf() private var editAdjustments: MutableList = mutableListOf() - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -287,6 +287,11 @@ constructor( this.editAdjustments.add(editAdjustment) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -297,29 +302,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -332,42 +350,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -375,6 +399,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionPriceIntervalsParams = SubscriptionPriceIntervalsParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, @@ -382,14 +414,8 @@ constructor( if (addAdjustments.size == 0) null else addAdjustments.toImmutable(), if (edit.size == 0) null else edit.toImmutable(), if (editAdjustments.size == 0) null else editAdjustments.toImmutable(), - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt index 84f90e52..8a9938ed 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionSchedulePlanChangeParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -24,6 +22,8 @@ import com.withorb.api.core.JsonMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -58,8 +58,8 @@ constructor( private val replaceAdjustments: List?, private val replacePrices: List?, private val trialDurationDays: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -145,9 +145,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -637,9 +637,9 @@ constructor( "SubscriptionSchedulePlanChangeBody{changeOption=$changeOption, addAdjustments=$addAdjustments, addPrices=$addPrices, alignBillingWithPlanChangeDate=$alignBillingWithPlanChangeDate, autoCollection=$autoCollection, billingCycleAlignment=$billingCycleAlignment, changeDate=$changeDate, couponRedemptionCode=$couponRedemptionCode, creditsOverageRate=$creditsOverageRate, defaultInvoiceMemo=$defaultInvoiceMemo, externalPlanId=$externalPlanId, initialPhaseOrder=$initialPhaseOrder, invoicingThreshold=$invoicingThreshold, netTerms=$netTerms, perCreditOverageAmount=$perCreditOverageAmount, planId=$planId, planVersionNumber=$planVersionNumber, priceOverrides=$priceOverrides, removeAdjustments=$removeAdjustments, removePrices=$removePrices, replaceAdjustments=$replaceAdjustments, replacePrices=$replacePrices, trialDurationDays=$trialDurationDays, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -692,8 +692,8 @@ constructor( private var replaceAdjustments: MutableList = mutableListOf() private var replacePrices: MutableList = mutableListOf() private var trialDurationDays: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -952,6 +952,11 @@ constructor( this.trialDurationDays = trialDurationDays } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -962,29 +967,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -997,42 +1015,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -1040,6 +1064,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionSchedulePlanChangeParams = SubscriptionSchedulePlanChangeParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, @@ -1066,14 +1098,8 @@ constructor( if (replaceAdjustments.size == 0) null else replaceAdjustments.toImmutable(), if (replacePrices.size == 0) null else replacePrices.toImmutable(), trialDurationDays, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt index f14ec707..dfa6ff3a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionTriggerPhaseParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.time.LocalDate @@ -21,8 +21,8 @@ class SubscriptionTriggerPhaseParams constructor( private val subscriptionId: String, private val effectiveDate: LocalDate?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -35,9 +35,9 @@ constructor( return SubscriptionTriggerPhaseBody(effectiveDate, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -130,9 +130,9 @@ constructor( "SubscriptionTriggerPhaseBody{effectiveDate=$effectiveDate, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -163,8 +163,8 @@ constructor( private var subscriptionId: String? = null private var effectiveDate: LocalDate? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -184,6 +184,11 @@ constructor( */ fun effectiveDate(effectiveDate: LocalDate) = apply { this.effectiveDate = effectiveDate } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -194,29 +199,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -229,42 +247,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -272,18 +296,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionTriggerPhaseParams = SubscriptionTriggerPhaseParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, effectiveDate, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt index 991a6172..352d1e24 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleCancellationParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class SubscriptionUnscheduleCancellationParams constructor( private val subscriptionId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -87,6 +87,11 @@ constructor( fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -97,29 +102,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -132,42 +150,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -175,17 +199,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUnscheduleCancellationParams = SubscriptionUnscheduleCancellationParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt index a1977b8e..78234a8f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnscheduleFixedFeeQuantityUpdatesParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -19,8 +19,8 @@ class SubscriptionUnscheduleFixedFeeQuantityUpdatesParams constructor( private val subscriptionId: String, private val priceId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -33,9 +33,9 @@ constructor( return SubscriptionUnscheduleFixedFeeQuantityUpdatesBody(priceId, additionalBodyProperties) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -128,9 +128,9 @@ constructor( "SubscriptionUnscheduleFixedFeeQuantityUpdatesBody{priceId=$priceId, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -161,8 +161,8 @@ constructor( private var subscriptionId: String? = null private var priceId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -186,6 +186,11 @@ constructor( /** Price for which the updates should be cleared. Must be a fixed fee. */ fun priceId(priceId: String) = apply { this.priceId = priceId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -196,29 +201,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -231,42 +249,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -274,18 +298,20 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUnscheduleFixedFeeQuantityUpdatesParams = SubscriptionUnscheduleFixedFeeQuantityUpdatesParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, checkNotNull(priceId) { "`priceId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt index 03453751..f109cc9e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUnschedulePendingPlanChangesParams.kt @@ -2,10 +2,10 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -14,8 +14,8 @@ import java.util.Optional class SubscriptionUnschedulePendingPlanChangesParams constructor( private val subscriptionId: String, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -26,9 +26,9 @@ constructor( return Optional.ofNullable(additionalBodyProperties.ifEmpty { null }) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -37,9 +37,9 @@ constructor( } } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -69,8 +69,8 @@ constructor( class Builder { private var subscriptionId: String? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -90,6 +90,11 @@ constructor( fun subscriptionId(subscriptionId: String) = apply { this.subscriptionId = subscriptionId } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -100,29 +105,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -135,42 +153,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -178,17 +202,19 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUnschedulePendingPlanChangesParams = SubscriptionUnschedulePendingPlanChangesParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt index 35d7f8fa..5779a9d8 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateFixedFeeQuantityParams.kt @@ -7,13 +7,13 @@ import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.Enum import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -28,8 +28,8 @@ constructor( private val quantity: Double, private val changeOption: ChangeOption?, private val effectiveDate: LocalDate?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -54,9 +54,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -197,9 +197,9 @@ constructor( "SubscriptionUpdateFixedFeeQuantityBody{priceId=$priceId, quantity=$quantity, changeOption=$changeOption, effectiveDate=$effectiveDate, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -233,8 +233,8 @@ constructor( private var quantity: Double? = null private var changeOption: ChangeOption? = null private var effectiveDate: LocalDate? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -274,6 +274,11 @@ constructor( */ fun effectiveDate(effectiveDate: LocalDate) = apply { this.effectiveDate = effectiveDate } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -284,29 +289,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -319,42 +337,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -362,6 +386,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUpdateFixedFeeQuantityParams = SubscriptionUpdateFixedFeeQuantityParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, @@ -369,14 +401,8 @@ constructor( checkNotNull(quantity) { "`quantity` is required but was not set" }, changeOption, effectiveDate, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt index 9ce760cf..c8045dc6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateParams.kt @@ -6,11 +6,11 @@ import com.fasterxml.jackson.annotation.JsonAnyGetter import com.fasterxml.jackson.annotation.JsonAnySetter import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.databind.annotation.JsonDeserialize -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.ExcludeMissing import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.models.* import java.util.Objects @@ -24,8 +24,8 @@ constructor( private val invoicingThreshold: String?, private val metadata: Metadata?, private val netTerms: Long?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -53,9 +53,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -232,9 +232,9 @@ constructor( "SubscriptionUpdateBody{autoCollection=$autoCollection, defaultInvoiceMemo=$defaultInvoiceMemo, invoicingThreshold=$invoicingThreshold, metadata=$metadata, netTerms=$netTerms, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -269,8 +269,8 @@ constructor( private var invoicingThreshold: String? = null private var metadata: Metadata? = null private var netTerms: Long? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -326,6 +326,11 @@ constructor( */ fun netTerms(netTerms: Long) = apply { this.netTerms = netTerms } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -336,29 +341,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -371,42 +389,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -414,6 +438,14 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUpdateParams = SubscriptionUpdateParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, @@ -422,14 +454,8 @@ constructor( invoicingThreshold, metadata, netTerms, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt index caa7a3bc..7966a713 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/SubscriptionUpdateTrialParams.kt @@ -13,8 +13,6 @@ import com.fasterxml.jackson.databind.SerializerProvider import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.module.kotlin.jacksonTypeRef -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.BaseDeserializer import com.withorb.api.core.BaseSerializer import com.withorb.api.core.Enum @@ -23,6 +21,8 @@ import com.withorb.api.core.JsonField import com.withorb.api.core.JsonValue import com.withorb.api.core.NoAutoDetect import com.withorb.api.core.getOrThrow +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.core.toImmutable import com.withorb.api.errors.OrbInvalidDataException import com.withorb.api.models.* @@ -35,8 +35,8 @@ constructor( private val subscriptionId: String, private val trialEndDate: TrialEndDate, private val shift: Boolean?, - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, private val additionalBodyProperties: Map, ) { @@ -55,9 +55,9 @@ constructor( ) } - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams fun getPathParam(index: Int): String { return when (index) { @@ -169,9 +169,9 @@ constructor( "SubscriptionUpdateTrialBody{trialEndDate=$trialEndDate, shift=$shift, additionalProperties=$additionalProperties}" } - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams fun _additionalBodyProperties(): Map = additionalBodyProperties @@ -203,8 +203,8 @@ constructor( private var subscriptionId: String? = null private var trialEndDate: TrialEndDate? = null private var shift: Boolean? = null - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() private var additionalBodyProperties: MutableMap = mutableMapOf() @JvmSynthetic @@ -247,6 +247,11 @@ constructor( */ fun shift(shift: Boolean) = apply { this.shift = shift } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -257,29 +262,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -292,42 +310,48 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun additionalBodyProperties(additionalBodyProperties: Map) = apply { this.additionalBodyProperties.clear() - this.additionalBodyProperties.putAll(additionalBodyProperties) + putAllAdditionalBodyProperties(additionalBodyProperties) } fun putAdditionalBodyProperty(key: String, value: JsonValue) = apply { - this.additionalBodyProperties.put(key, value) + additionalBodyProperties.put(key, value) } fun putAllAdditionalBodyProperties(additionalBodyProperties: Map) = @@ -335,19 +359,21 @@ constructor( this.additionalBodyProperties.putAll(additionalBodyProperties) } + fun removeAdditionalBodyProperty(key: String) = apply { + additionalBodyProperties.remove(key) + } + + fun removeAllAdditionalBodyProperties(keys: Set) = apply { + keys.forEach(::removeAdditionalBodyProperty) + } + fun build(): SubscriptionUpdateTrialParams = SubscriptionUpdateTrialParams( checkNotNull(subscriptionId) { "`subscriptionId` is required but was not set" }, checkNotNull(trialEndDate) { "`trialEndDate` is required but was not set" }, shift, - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), + additionalHeaders.build(), + additionalQueryParams.build(), additionalBodyProperties.toImmutable(), ) } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt index 2ec74d71..dbe6fd76 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/models/TopLevelPingParams.kt @@ -2,26 +2,25 @@ package com.withorb.api.models -import com.google.common.collect.ArrayListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.core.NoAutoDetect -import com.withorb.api.core.toImmutable +import com.withorb.api.core.http.Headers +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.util.Objects class TopLevelPingParams constructor( - private val additionalHeaders: Map>, - private val additionalQueryParams: Map>, + private val additionalHeaders: Headers, + private val additionalQueryParams: QueryParams, ) { - @JvmSynthetic internal fun getHeaders(): Map> = additionalHeaders + @JvmSynthetic internal fun getHeaders(): Headers = additionalHeaders - @JvmSynthetic internal fun getQueryParams(): Map> = additionalQueryParams + @JvmSynthetic internal fun getQueryParams(): QueryParams = additionalQueryParams - fun _additionalHeaders(): Map> = additionalHeaders + fun _additionalHeaders(): Headers = additionalHeaders - fun _additionalQueryParams(): Map> = additionalQueryParams + fun _additionalQueryParams(): QueryParams = additionalQueryParams override fun equals(other: Any?): Boolean { if (this === other) { @@ -48,8 +47,8 @@ constructor( @NoAutoDetect class Builder { - private var additionalHeaders: ListMultimap = ArrayListMultimap.create() - private var additionalQueryParams: ListMultimap = ArrayListMultimap.create() + private var additionalHeaders: Headers.Builder = Headers.builder() + private var additionalQueryParams: QueryParams.Builder = QueryParams.builder() @JvmSynthetic internal fun from(topLevelPingParams: TopLevelPingParams) = apply { @@ -57,6 +56,11 @@ constructor( additionalQueryParams(topLevelPingParams.additionalQueryParams) } + fun additionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.clear() + putAllAdditionalHeaders(additionalHeaders) + } + fun additionalHeaders(additionalHeaders: Map>) = apply { this.additionalHeaders.clear() putAllAdditionalHeaders(additionalHeaders) @@ -67,29 +71,42 @@ constructor( } fun putAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.putAll(name, values) + additionalHeaders.put(name, values) + } + + fun putAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.putAll(additionalHeaders) } fun putAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::putAdditionalHeaders) + this.additionalHeaders.putAll(additionalHeaders) } fun replaceAdditionalHeaders(name: String, value: String) = apply { - additionalHeaders.replaceValues(name, listOf(value)) + additionalHeaders.replace(name, value) } fun replaceAdditionalHeaders(name: String, values: Iterable) = apply { - additionalHeaders.replaceValues(name, values) + additionalHeaders.replace(name, values) + } + + fun replaceAllAdditionalHeaders(additionalHeaders: Headers) = apply { + this.additionalHeaders.replaceAll(additionalHeaders) } fun replaceAllAdditionalHeaders(additionalHeaders: Map>) = apply { - additionalHeaders.forEach(::replaceAdditionalHeaders) + this.additionalHeaders.replaceAll(additionalHeaders) } - fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.removeAll(name) } + fun removeAdditionalHeaders(name: String) = apply { additionalHeaders.remove(name) } fun removeAllAdditionalHeaders(names: Set) = apply { - names.forEach(::removeAdditionalHeaders) + additionalHeaders.removeAll(names) + } + + fun additionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.clear() + putAllAdditionalQueryParams(additionalQueryParams) } fun additionalQueryParams(additionalQueryParams: Map>) = apply { @@ -102,45 +119,42 @@ constructor( } fun putAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.putAll(key, values) + additionalQueryParams.put(key, values) + } + + fun putAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.putAll(additionalQueryParams) } fun putAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::putAdditionalQueryParams) + this.additionalQueryParams.putAll(additionalQueryParams) } fun replaceAdditionalQueryParams(key: String, value: String) = apply { - additionalQueryParams.replaceValues(key, listOf(value)) + additionalQueryParams.replace(key, value) } fun replaceAdditionalQueryParams(key: String, values: Iterable) = apply { - additionalQueryParams.replaceValues(key, values) + additionalQueryParams.replace(key, values) + } + + fun replaceAllAdditionalQueryParams(additionalQueryParams: QueryParams) = apply { + this.additionalQueryParams.replaceAll(additionalQueryParams) } fun replaceAllAdditionalQueryParams(additionalQueryParams: Map>) = apply { - additionalQueryParams.forEach(::replaceAdditionalQueryParams) + this.additionalQueryParams.replaceAll(additionalQueryParams) } - fun removeAdditionalQueryParams(key: String) = apply { - additionalQueryParams.removeAll(key) - } + fun removeAdditionalQueryParams(key: String) = apply { additionalQueryParams.remove(key) } fun removeAllAdditionalQueryParams(keys: Set) = apply { - keys.forEach(::removeAdditionalQueryParams) + additionalQueryParams.removeAll(keys) } fun build(): TopLevelPingParams = - TopLevelPingParams( - additionalHeaders - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable(), - additionalQueryParams - .asMap() - .mapValues { it.value.toList().toImmutable() } - .toImmutable() - ) + TopLevelPingParams(additionalHeaders.build(), additionalQueryParams.build()) } } diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/AlertServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/AlertServiceAsyncImpl.kt index ca0b96a5..15376e0f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/AlertServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/AlertServiceAsyncImpl.kt @@ -43,9 +43,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("alerts", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -72,9 +72,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("alerts", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -113,9 +113,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("alerts") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -151,9 +151,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -189,9 +189,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -230,9 +230,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "subscription_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -260,9 +260,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", params.getPathParam(0), "disable") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -290,9 +290,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", params.getPathParam(0), "enable") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CouponServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CouponServiceAsyncImpl.kt index 2ad901ed..a73bfd20 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CouponServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CouponServiceAsyncImpl.kt @@ -50,9 +50,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("coupons") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -88,9 +88,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -122,9 +122,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("coupons", params.getPathParam(0), "archive") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -155,9 +155,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CreditNoteServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CreditNoteServiceAsyncImpl.kt index 6b10b0a8..9c5c2eac 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CreditNoteServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CreditNoteServiceAsyncImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("credit_notes") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -75,9 +75,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("credit_notes") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -108,9 +108,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("credit_notes", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CustomerServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CustomerServiceAsyncImpl.kt index 7a7ae762..978bed5a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CustomerServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/CustomerServiceAsyncImpl.kt @@ -75,9 +75,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -110,9 +110,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -147,9 +147,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -189,9 +189,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.DELETE) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -219,9 +219,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -254,9 +254,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -287,9 +287,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("customers", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/EventServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/EventServiceAsyncImpl.kt index 509c5c86..f0ba75c4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/EventServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/EventServiceAsyncImpl.kt @@ -93,9 +93,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("events", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -158,9 +158,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("events", params.getPathParam(0), "deprecate") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -377,9 +377,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("ingest") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -422,9 +422,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "search") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceLineItemServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceLineItemServiceAsyncImpl.kt index 091d5872..34488b67 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceLineItemServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceLineItemServiceAsyncImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoice_line_items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceServiceAsyncImpl.kt index 3629cc94..cf29b672 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/InvoiceServiceAsyncImpl.kt @@ -44,9 +44,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -79,9 +79,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("invoices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -123,9 +123,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -156,9 +156,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -189,9 +189,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices", "upcoming") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -224,9 +224,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "issue") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -257,9 +257,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "mark_paid") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -294,9 +294,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "void") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/ItemServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/ItemServiceAsyncImpl.kt index 145b5e75..72538e20 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/ItemServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/ItemServiceAsyncImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -69,9 +69,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("items", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -100,9 +100,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -130,9 +130,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("items", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/MetricServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/MetricServiceAsyncImpl.kt index 957af817..ec67c663 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/MetricServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/MetricServiceAsyncImpl.kt @@ -43,9 +43,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("metrics") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -76,9 +76,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("metrics", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -111,9 +111,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("metrics") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -144,9 +144,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("metrics", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PlanServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PlanServiceAsyncImpl.kt index b39c0f41..9f8a0620 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PlanServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PlanServiceAsyncImpl.kt @@ -47,9 +47,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("plans") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -82,9 +82,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("plans", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -118,9 +118,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -165,9 +165,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PriceServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PriceServiceAsyncImpl.kt index f7308417..576e1bce 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PriceServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/PriceServiceAsyncImpl.kt @@ -59,9 +59,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("prices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -92,9 +92,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("prices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -126,9 +126,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -174,9 +174,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("prices", params.getPathParam(0), "evaluate") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -204,9 +204,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/SubscriptionServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/SubscriptionServiceAsyncImpl.kt index 86b47aa9..68f21492 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/SubscriptionServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/SubscriptionServiceAsyncImpl.kt @@ -299,9 +299,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -332,9 +332,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("subscriptions", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -372,9 +372,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -456,9 +456,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "cancel") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -489,9 +489,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -529,9 +529,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "costs") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -563,9 +563,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "schedule") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -769,9 +769,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "usage") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -865,9 +865,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "price_intervals") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1058,9 +1058,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "schedule_plan_change") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1091,9 +1091,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "trigger_phase") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1128,9 +1128,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "unschedule_cancellation") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -1169,9 +1169,9 @@ constructor( params.getPathParam(0), "unschedule_fixed_fee_quantity_updates" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1207,9 +1207,9 @@ constructor( params.getPathParam(0), "unschedule_pending_plan_changes" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -1255,9 +1255,9 @@ constructor( params.getPathParam(0), "update_fixed_fee_quantity" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1303,9 +1303,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "update_trial") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/TopLevelServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/TopLevelServiceAsyncImpl.kt index a7b61940..f14d82a6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/TopLevelServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/TopLevelServiceAsyncImpl.kt @@ -41,9 +41,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("ping") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/coupons/SubscriptionServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/coupons/SubscriptionServiceAsyncImpl.kt index f2504848..c88b4b88 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/coupons/SubscriptionServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/coupons/SubscriptionServiceAsyncImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons", params.getPathParam(0), "subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/BalanceTransactionServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/BalanceTransactionServiceAsyncImpl.kt index ee733395..624634fc 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/BalanceTransactionServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/BalanceTransactionServiceAsyncImpl.kt @@ -41,9 +41,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "balance_transactions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -98,9 +98,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "balance_transactions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CostServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CostServiceAsyncImpl.kt index a7141e16..c0863491 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CostServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CostServiceAsyncImpl.kt @@ -146,9 +146,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "costs") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -290,9 +290,9 @@ constructor( params.getPathParam(0), "costs" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CreditServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CreditServiceAsyncImpl.kt index cee970b3..a14fbf58 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CreditServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/CreditServiceAsyncImpl.kt @@ -54,9 +54,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -95,9 +95,9 @@ constructor( params.getPathParam(0), "credits" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/LedgerServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/LedgerServiceAsyncImpl.kt index 6d0eb021..e9d34fb2 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/LedgerServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/LedgerServiceAsyncImpl.kt @@ -120,9 +120,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits", "ledger") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -253,9 +253,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "credits", "ledger_entry") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -393,9 +393,9 @@ constructor( "credits", "ledger_entry" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -511,9 +511,9 @@ constructor( "credits", "ledger" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/TopUpServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/TopUpServiceAsyncImpl.kt index af1012be..42160bc7 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/TopUpServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/customers/credits/TopUpServiceAsyncImpl.kt @@ -52,9 +52,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "credits", "top_ups") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -83,9 +83,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits", "top_ups") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -118,9 +118,9 @@ constructor( "top_ups", params.getPathParam(1) ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -156,9 +156,9 @@ constructor( "credits", "top_ups" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -193,9 +193,9 @@ constructor( "top_ups", params.getPathParam(1) ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -225,9 +225,9 @@ constructor( "credits", "top_ups" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/BackfillServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/BackfillServiceAsyncImpl.kt index b602db05..a9e945b1 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/BackfillServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/BackfillServiceAsyncImpl.kt @@ -72,9 +72,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -110,9 +110,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "backfills") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -145,9 +145,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills", params.getPathParam(0), "close") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -176,9 +176,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "backfills", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response @@ -213,9 +213,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills", params.getPathParam(0), "revert") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/VolumeServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/VolumeServiceAsyncImpl.kt index e21ec1b1..6cd82f2e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/VolumeServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/events/VolumeServiceAsyncImpl.kt @@ -46,9 +46,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "volume") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/plans/ExternalPlanIdServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/plans/ExternalPlanIdServiceAsyncImpl.kt index b1f6c2b9..fb7b4d9c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/plans/ExternalPlanIdServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/plans/ExternalPlanIdServiceAsyncImpl.kt @@ -41,9 +41,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("plans", "external_plan_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -87,9 +87,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans", "external_plan_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/prices/ExternalPriceIdServiceAsyncImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/prices/ExternalPriceIdServiceAsyncImpl.kt index 9787b10b..ab014fef 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/async/prices/ExternalPriceIdServiceAsyncImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/async/prices/ExternalPriceIdServiceAsyncImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("prices", "external_price_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -73,9 +73,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices", "external_price_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/AlertServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/AlertServiceImpl.kt index 12f6fca9..19275393 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/AlertServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/AlertServiceImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("alerts", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -64,9 +64,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("alerts", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -100,9 +100,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("alerts") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -137,9 +137,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -174,9 +174,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -214,9 +214,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", "subscription_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -240,9 +240,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", params.getPathParam(0), "disable") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -266,9 +266,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("alerts", params.getPathParam(0), "enable") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CouponServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CouponServiceImpl.kt index 4f461ed3..eafb82c4 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CouponServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CouponServiceImpl.kt @@ -46,9 +46,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("coupons") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -80,9 +80,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -110,9 +110,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("coupons", params.getPathParam(0), "archive") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -139,9 +139,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CreditNoteServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CreditNoteServiceImpl.kt index 261384fc..cbda5b08 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CreditNoteServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CreditNoteServiceImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("credit_notes") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -73,9 +73,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("credit_notes") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -102,9 +102,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("credit_notes", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CustomerServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CustomerServiceImpl.kt index 442c2cc7..e0d3239c 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CustomerServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/CustomerServiceImpl.kt @@ -71,9 +71,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -102,9 +102,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -138,9 +138,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -176,9 +176,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.DELETE) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -202,9 +202,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -236,9 +236,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -268,9 +268,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("customers", "external_customer_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/EventServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/EventServiceImpl.kt index c36545d9..c5195928 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/EventServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/EventServiceImpl.kt @@ -92,9 +92,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("events", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -156,9 +156,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("events", params.getPathParam(0), "deprecate") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -374,9 +374,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("ingest") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -418,9 +418,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "search") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceLineItemServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceLineItemServiceImpl.kt index b37c8657..094ca608 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceLineItemServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceLineItemServiceImpl.kt @@ -38,9 +38,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoice_line_items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceServiceImpl.kt index 8d2fe568..f8a58b4f 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/InvoiceServiceImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -71,9 +71,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("invoices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -111,9 +111,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -140,9 +140,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -172,9 +172,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("invoices", "upcoming") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -203,9 +203,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "issue") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -232,9 +232,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "mark_paid") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -268,9 +268,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("invoices", params.getPathParam(0), "void") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/ItemServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/ItemServiceImpl.kt index eb4c3cf3..5b9d528e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/ItemServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/ItemServiceImpl.kt @@ -35,9 +35,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -61,9 +61,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("items", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -87,9 +87,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("items") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -113,9 +113,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("items", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/MetricServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/MetricServiceImpl.kt index d7f26008..fcf9d1ef 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/MetricServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/MetricServiceImpl.kt @@ -42,9 +42,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("metrics") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -74,9 +74,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("metrics", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -105,9 +105,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("metrics") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -134,9 +134,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("metrics", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PlanServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PlanServiceImpl.kt index 6938ca97..46603a7a 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PlanServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PlanServiceImpl.kt @@ -43,9 +43,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("plans") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -74,9 +74,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("plans", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -105,9 +105,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -148,9 +148,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PriceServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PriceServiceImpl.kt index 5c69a260..9bb33305 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PriceServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/PriceServiceImpl.kt @@ -55,9 +55,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("prices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -84,9 +84,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("prices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -113,9 +113,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -160,9 +160,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("prices", params.getPathParam(0), "evaluate") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -186,9 +186,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/SubscriptionServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/SubscriptionServiceImpl.kt index 6b8e4e00..6c768c8e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/SubscriptionServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/SubscriptionServiceImpl.kt @@ -298,9 +298,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -330,9 +330,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("subscriptions", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -369,9 +369,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -452,9 +452,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "cancel") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -484,9 +484,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -523,9 +523,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "costs") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -556,9 +556,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "schedule") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -761,9 +761,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("subscriptions", params.getPathParam(0), "usage") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -856,9 +856,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "price_intervals") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1048,9 +1048,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "schedule_plan_change") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1080,9 +1080,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "trigger_phase") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1116,9 +1116,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "unschedule_cancellation") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -1156,9 +1156,9 @@ constructor( params.getPathParam(0), "unschedule_fixed_fee_quantity_updates" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1193,9 +1193,9 @@ constructor( params.getPathParam(0), "unschedule_pending_plan_changes" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -1240,9 +1240,9 @@ constructor( params.getPathParam(0), "update_fixed_fee_quantity" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -1287,9 +1287,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("subscriptions", params.getPathParam(0), "update_trial") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/TopLevelServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/TopLevelServiceImpl.kt index c52dc898..dd6f9d79 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/TopLevelServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/TopLevelServiceImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("ping") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/coupons/SubscriptionServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/coupons/SubscriptionServiceImpl.kt index ccaf22f1..4d2b2361 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/coupons/SubscriptionServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/coupons/SubscriptionServiceImpl.kt @@ -39,9 +39,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("coupons", params.getPathParam(0), "subscriptions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/BalanceTransactionServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/BalanceTransactionServiceImpl.kt index d5b0ddeb..647aeee5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/BalanceTransactionServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/BalanceTransactionServiceImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "balance_transactions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -96,9 +96,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "balance_transactions") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CostServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CostServiceImpl.kt index 250e4446..8dd6fcc6 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CostServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CostServiceImpl.kt @@ -145,9 +145,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "costs") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -288,9 +288,9 @@ constructor( params.getPathParam(0), "costs" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CreditServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CreditServiceImpl.kt index 9a36bbf5..430f95c5 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CreditServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/CreditServiceImpl.kt @@ -53,9 +53,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -93,9 +93,9 @@ constructor( params.getPathParam(0), "credits" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/LedgerServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/LedgerServiceImpl.kt index 2b23c756..a43e9a64 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/LedgerServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/LedgerServiceImpl.kt @@ -119,9 +119,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits", "ledger") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -251,9 +251,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "credits", "ledger_entry") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -390,9 +390,9 @@ constructor( "credits", "ledger_entry" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -505,9 +505,9 @@ constructor( "credits", "ledger" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/TopUpServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/TopUpServiceImpl.kt index 8045555d..e3a529cb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/TopUpServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/customers/credits/TopUpServiceImpl.kt @@ -51,9 +51,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("customers", params.getPathParam(0), "credits", "top_ups") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -81,9 +81,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("customers", params.getPathParam(0), "credits", "top_ups") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -112,9 +112,9 @@ constructor( "top_ups", params.getPathParam(1) ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -149,9 +149,9 @@ constructor( "credits", "top_ups" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -185,9 +185,9 @@ constructor( "top_ups", params.getPathParam(1) ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -215,9 +215,9 @@ constructor( "credits", "top_ups" ) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/BackfillServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/BackfillServiceImpl.kt index c33290b2..e40f0acf 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/BackfillServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/BackfillServiceImpl.kt @@ -71,9 +71,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -108,9 +108,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "backfills") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -142,9 +142,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills", params.getPathParam(0), "close") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() @@ -172,9 +172,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "backfills", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> @@ -208,9 +208,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.POST) .addPathSegments("events", "backfills", params.getPathParam(0), "revert") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } } .build() diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/VolumeServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/VolumeServiceImpl.kt index 2b0a5ee5..3c84099d 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/VolumeServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/events/VolumeServiceImpl.kt @@ -42,9 +42,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("events", "volume") - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/plans/ExternalPlanIdServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/plans/ExternalPlanIdServiceImpl.kt index 60de2d4b..8d380b0e 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/plans/ExternalPlanIdServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/plans/ExternalPlanIdServiceImpl.kt @@ -40,9 +40,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("plans", "external_plan_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -85,9 +85,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("plans", "external_plan_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/prices/ExternalPriceIdServiceImpl.kt b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/prices/ExternalPriceIdServiceImpl.kt index dcae3fd6..91d08eeb 100644 --- a/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/prices/ExternalPriceIdServiceImpl.kt +++ b/orb-java-core/src/main/kotlin/com/withorb/api/services/blocking/prices/ExternalPriceIdServiceImpl.kt @@ -38,9 +38,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.PUT) .addPathSegments("prices", "external_price_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .body(json(clientOptions.jsonMapper, params.getBody())) .build() @@ -71,9 +71,9 @@ constructor( HttpRequest.builder() .method(HttpMethod.GET) .addPathSegments("prices", "external_price_id", params.getPathParam(0)) - .putAllQueryParams(clientOptions.queryParams.asMap()) + .putAllQueryParams(clientOptions.queryParams) .replaceAllQueryParams(params.getQueryParams()) - .putAllHeaders(clientOptions.headers.asMap()) + .putAllHeaders(clientOptions.headers) .replaceAllHeaders(params.getHeaders()) .build() return clientOptions.httpClient.execute(request, requestOptions).let { response -> diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HeadersTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HeadersTest.kt new file mode 100644 index 00000000..18cf714e --- /dev/null +++ b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HeadersTest.kt @@ -0,0 +1,274 @@ +package com.withorb.api.core.http + +import org.assertj.core.api.Assertions.assertThat +import org.assertj.core.api.Assertions.catchThrowable +import org.assertj.core.api.Assumptions.assumeThat +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.EnumSource + +internal class HeadersTest { + + enum class TestCase( + val headers: Headers, + val expectedMap: Map>, + val expectedSize: Int + ) { + EMPTY(Headers.builder().build(), expectedMap = mapOf(), expectedSize = 0), + PUT_ONE( + Headers.builder().put("name", "value").build(), + expectedMap = mapOf("name" to listOf("value")), + expectedSize = 1 + ), + PUT_MULTIPLE( + Headers.builder().put("name", listOf("value1", "value2")).build(), + expectedMap = mapOf("name" to listOf("value1", "value2")), + expectedSize = 2 + ), + MULTIPLE_PUT( + Headers.builder().put("name1", "value").put("name2", "value").build(), + expectedMap = mapOf("name1" to listOf("value"), "name2" to listOf("value")), + expectedSize = 2 + ), + MULTIPLE_PUT_SAME_NAME( + Headers.builder().put("name", "value1").put("name", "value2").build(), + expectedMap = mapOf("name" to listOf("value1", "value2")), + expectedSize = 2 + ), + MULTIPLE_PUT_MULTIPLE( + Headers.builder() + .put("name", listOf("value1", "value2")) + .put("name", listOf("value1", "value2")) + .build(), + expectedMap = mapOf("name" to listOf("value1", "value2", "value1", "value2")), + expectedSize = 4 + ), + PUT_CASE_INSENSITIVE( + Headers.builder() + .put("name", "value1") + .put("NAME", "value2") + .put("nAmE", "value3") + .build(), + expectedMap = mapOf("name" to listOf("value1", "value2", "value3")), + expectedSize = 3 + ), + PUT_ALL_MAP( + Headers.builder() + .putAll( + mapOf( + "name1" to listOf("value1", "value2"), + "name2" to listOf("value1", "value2") + ) + ) + .build(), + expectedMap = + mapOf("name1" to listOf("value1", "value2"), "name2" to listOf("value1", "value2")), + expectedSize = 4 + ), + PUT_ALL_HEADERS( + Headers.builder().putAll(Headers.builder().put("name", "value").build()).build(), + expectedMap = mapOf("name" to listOf("value")), + expectedSize = 1 + ), + PUT_ALL_CASE_INSENSITIVE( + Headers.builder() + .putAll( + mapOf( + "name" to listOf("value1"), + "NAME" to listOf("value2"), + "nAmE" to listOf("value3") + ) + ) + .build(), + expectedMap = mapOf("name" to listOf("value1", "value2", "value3")), + expectedSize = 3 + ), + REMOVE_ABSENT( + Headers.builder().remove("name").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_PRESENT_ONE( + Headers.builder().put("name", "value").remove("name").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_PRESENT_MULTIPLE( + Headers.builder().put("name", listOf("value1", "value2")).remove("name").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_CASE_INSENSITIVE( + Headers.builder().put("name", listOf("value1", "value2")).remove("NAME").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_ALL( + Headers.builder() + .put("name1", "value") + .put("name3", "value") + .removeAll(setOf("name1", "name2", "name3")) + .build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_ALL_CASE_INSENSITIVE( + Headers.builder() + .put("name1", "value") + .put("name3", "value") + .removeAll(setOf("NAME1", "nAmE3")) + .build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + CLEAR( + Headers.builder().put("name1", "value").put("name2", "value").clear().build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REPLACE_ONE_ABSENT( + Headers.builder().replace("name", "value").build(), + expectedMap = mapOf("name" to listOf("value")), + expectedSize = 1 + ), + REPLACE_ONE_PRESENT_ONE( + Headers.builder().put("name", "value1").replace("name", "value2").build(), + expectedMap = mapOf("name" to listOf("value2")), + expectedSize = 1 + ), + REPLACE_ONE_PRESENT_MULTIPLE( + Headers.builder() + .put("name", listOf("value1", "value2")) + .replace("name", "value3") + .build(), + expectedMap = mapOf("name" to listOf("value3")), + expectedSize = 1 + ), + REPLACE_MULTIPLE_ABSENT( + Headers.builder().replace("name", listOf("value1", "value2")).build(), + expectedMap = mapOf("name" to listOf("value1", "value2")), + expectedSize = 2 + ), + REPLACE_MULTIPLE_PRESENT_ONE( + Headers.builder() + .put("name", "value1") + .replace("name", listOf("value2", "value3")) + .build(), + expectedMap = mapOf("name" to listOf("value2", "value3")), + expectedSize = 2 + ), + REPLACE_MULTIPLE_PRESENT_MULTIPLE( + Headers.builder() + .put("name", listOf("value1", "value2")) + .replace("name", listOf("value3", "value4")) + .build(), + expectedMap = mapOf("name" to listOf("value3", "value4")), + expectedSize = 2 + ), + REPLACE_CASE_INSENSITIVE( + Headers.builder() + .put("name", "value1") + .replace("NAME", listOf("value2", "value3")) + .build(), + expectedMap = mapOf("NAME" to listOf("value2", "value3")), + expectedSize = 2 + ), + REPLACE_ALL_MAP( + Headers.builder() + .put("name1", "value1") + .put("name2", "value1") + .put("name3", "value1") + .replaceAll(mapOf("name1" to listOf("value2"), "name3" to listOf("value2"))) + .build(), + expectedMap = + mapOf( + "name1" to listOf("value2"), + "name2" to listOf("value1"), + "name3" to listOf("value2") + ), + expectedSize = 3 + ), + REPLACE_ALL_HEADERS( + Headers.builder() + .put("name1", "value1") + .put("name2", "value1") + .put("name3", "value1") + .replaceAll(Headers.builder().put("name1", "value2").put("name3", "value2").build()) + .build(), + expectedMap = + mapOf( + "name1" to listOf("value2"), + "name2" to listOf("value1"), + "name3" to listOf("value2") + ), + expectedSize = 3 + ), + REPLACE_ALL_CASE_INSENSITIVE( + Headers.builder() + .put("name1", "value1") + .put("name2", "value1") + .replaceAll(mapOf("NAME1" to listOf("value2"), "nAmE2" to listOf("value2"))) + .build(), + expectedMap = mapOf("NAME1" to listOf("value2"), "nAmE2" to listOf("value2")), + expectedSize = 2 + ) + } + + @ParameterizedTest + @EnumSource + fun namesAndValues(testCase: TestCase) { + val map = mutableMapOf>() + val headers = testCase.headers + headers.names().forEach { name -> map[name] = headers.values(name) } + + assertThat(map).isEqualTo(testCase.expectedMap) + } + + @ParameterizedTest + @EnumSource + fun caseInsensitiveNames(testCase: TestCase) { + val headers = testCase.headers + + for (name in headers.names()) { + assertThat(headers.values(name)).isEqualTo(headers.values(name.lowercase())) + assertThat(headers.values(name)).isEqualTo(headers.values(name.uppercase())) + } + } + + @ParameterizedTest + @EnumSource + fun size(testCase: TestCase) { + val size = testCase.headers.size + + assertThat(size).isEqualTo(testCase.expectedSize) + } + + @ParameterizedTest + @EnumSource + fun namesAreImmutable(testCase: TestCase) { + val headers = testCase.headers + val headerNamesCopy = headers.names().toSet() + + val throwable = catchThrowable { + (headers.names() as MutableSet).add("another name") + } + + assertThat(throwable).isInstanceOf(UnsupportedOperationException::class.java) + assertThat(headers.names()).isEqualTo(headerNamesCopy) + } + + @ParameterizedTest + @EnumSource + fun valuesAreImmutable(testCase: TestCase) { + val headers = testCase.headers + assumeThat(headers.size).isNotEqualTo(0) + val name = headers.names().first() + val headerValuesCopy = headers.values(name).toList() + + val throwable = catchThrowable { + (headers.values(name) as MutableList).add("another value") + } + + assertThat(throwable).isInstanceOf(UnsupportedOperationException::class.java) + assertThat(headers.values(name)).isEqualTo(headerValuesCopy) + } +} diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HttpRequestTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HttpRequestTest.kt deleted file mode 100644 index ffa7e277..00000000 --- a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/HttpRequestTest.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.withorb.api.core.http - -import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Test - -internal class HttpRequestTest { - - @Test - fun caseInsensitiveHeadersAccessors() { - val request = - HttpRequest.builder() - .method(HttpMethod.POST) - .putHeader("something_lowercase", "lowercase") - .putHeader("Something_Capitalized", "Capitalized") - .putHeader("SOMETHING_UPPERCASE", "UPPERCASE") - .build() - assertThat(request.headers.get("SOMETHING_LOWERCASE").getOrNull(0)).isEqualTo("lowercase") - assertThat(request.headers.get("something_capitalized").getOrNull(0)) - .isEqualTo("Capitalized") - assertThat(request.headers.get("Something_Uppercase").getOrNull(0)).isEqualTo("UPPERCASE") - } -} diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/core/http/QueryParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/QueryParamsTest.kt new file mode 100644 index 00000000..8761a111 --- /dev/null +++ b/orb-java-core/src/test/kotlin/com/withorb/api/core/http/QueryParamsTest.kt @@ -0,0 +1,212 @@ +package com.withorb.api.core.http + +import org.assertj.core.api.Assertions.assertThat +import org.assertj.core.api.Assertions.catchThrowable +import org.assertj.core.api.Assumptions.assumeThat +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.EnumSource + +internal class QueryParamsTest { + + enum class TestCase( + val queryParams: QueryParams, + val expectedMap: Map>, + val expectedSize: Int + ) { + EMPTY(QueryParams.builder().build(), expectedMap = mapOf(), expectedSize = 0), + PUT_ONE( + QueryParams.builder().put("key", "value").build(), + expectedMap = mapOf("key" to listOf("value")), + expectedSize = 1 + ), + PUT_MULTIPLE( + QueryParams.builder().put("key", listOf("value1", "value2")).build(), + expectedMap = mapOf("key" to listOf("value1", "value2")), + expectedSize = 2 + ), + MULTIPLE_PUT( + QueryParams.builder().put("key1", "value").put("key2", "value").build(), + expectedMap = mapOf("key1" to listOf("value"), "key2" to listOf("value")), + expectedSize = 2 + ), + MULTIPLE_PUT_SAME_NAME( + QueryParams.builder().put("key", "value1").put("key", "value2").build(), + expectedMap = mapOf("key" to listOf("value1", "value2")), + expectedSize = 2 + ), + MULTIPLE_PUT_MULTIPLE( + QueryParams.builder() + .put("key", listOf("value1", "value2")) + .put("key", listOf("value1", "value2")) + .build(), + expectedMap = mapOf("key" to listOf("value1", "value2", "value1", "value2")), + expectedSize = 4 + ), + PUT_ALL_MAP( + QueryParams.builder() + .putAll( + mapOf( + "key1" to listOf("value1", "value2"), + "key2" to listOf("value1", "value2") + ) + ) + .build(), + expectedMap = + mapOf("key1" to listOf("value1", "value2"), "key2" to listOf("value1", "value2")), + expectedSize = 4 + ), + PUT_ALL_HEADERS( + QueryParams.builder().putAll(QueryParams.builder().put("key", "value").build()).build(), + expectedMap = mapOf("key" to listOf("value")), + expectedSize = 1 + ), + REMOVE_ABSENT( + QueryParams.builder().remove("key").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_PRESENT_ONE( + QueryParams.builder().put("key", "value").remove("key").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_PRESENT_MULTIPLE( + QueryParams.builder().put("key", listOf("value1", "value2")).remove("key").build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REMOVE_ALL( + QueryParams.builder() + .put("key1", "value") + .put("key3", "value") + .removeAll(setOf("key1", "key2", "key3")) + .build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + CLEAR( + QueryParams.builder().put("key1", "value").put("key2", "value").clear().build(), + expectedMap = mapOf(), + expectedSize = 0 + ), + REPLACE_ONE_ABSENT( + QueryParams.builder().replace("key", "value").build(), + expectedMap = mapOf("key" to listOf("value")), + expectedSize = 1 + ), + REPLACE_ONE_PRESENT_ONE( + QueryParams.builder().put("key", "value1").replace("key", "value2").build(), + expectedMap = mapOf("key" to listOf("value2")), + expectedSize = 1 + ), + REPLACE_ONE_PRESENT_MULTIPLE( + QueryParams.builder() + .put("key", listOf("value1", "value2")) + .replace("key", "value3") + .build(), + expectedMap = mapOf("key" to listOf("value3")), + expectedSize = 1 + ), + REPLACE_MULTIPLE_ABSENT( + QueryParams.builder().replace("key", listOf("value1", "value2")).build(), + expectedMap = mapOf("key" to listOf("value1", "value2")), + expectedSize = 2 + ), + REPLACE_MULTIPLE_PRESENT_ONE( + QueryParams.builder() + .put("key", "value1") + .replace("key", listOf("value2", "value3")) + .build(), + expectedMap = mapOf("key" to listOf("value2", "value3")), + expectedSize = 2 + ), + REPLACE_MULTIPLE_PRESENT_MULTIPLE( + QueryParams.builder() + .put("key", listOf("value1", "value2")) + .replace("key", listOf("value3", "value4")) + .build(), + expectedMap = mapOf("key" to listOf("value3", "value4")), + expectedSize = 2 + ), + REPLACE_ALL_MAP( + QueryParams.builder() + .put("key1", "value1") + .put("key2", "value1") + .put("key3", "value1") + .replaceAll(mapOf("key1" to listOf("value2"), "key3" to listOf("value2"))) + .build(), + expectedMap = + mapOf( + "key1" to listOf("value2"), + "key2" to listOf("value1"), + "key3" to listOf("value2") + ), + expectedSize = 3 + ), + REPLACE_ALL_HEADERS( + QueryParams.builder() + .put("key1", "value1") + .put("key2", "value1") + .put("key3", "value1") + .replaceAll( + QueryParams.builder().put("key1", "value2").put("key3", "value2").build() + ) + .build(), + expectedMap = + mapOf( + "key1" to listOf("value2"), + "key2" to listOf("value1"), + "key3" to listOf("value2") + ), + expectedSize = 3 + ) + } + + @ParameterizedTest + @EnumSource + fun keysAndValues(testCase: TestCase) { + val map = mutableMapOf>() + val queryParams = testCase.queryParams + queryParams.keys().forEach { key -> map[key] = queryParams.values(key) } + + assertThat(map).isEqualTo(testCase.expectedMap) + } + + @ParameterizedTest + @EnumSource + fun size(testCase: TestCase) { + val size = testCase.queryParams.size + + assertThat(size).isEqualTo(testCase.expectedSize) + } + + @ParameterizedTest + @EnumSource + fun keysAreImmutable(testCase: TestCase) { + val queryParams = testCase.queryParams + val queryParamKeysCopy = queryParams.keys().toSet() + + val throwable = catchThrowable { + (queryParams.keys() as MutableSet).add("another key") + } + + assertThat(throwable).isInstanceOf(UnsupportedOperationException::class.java) + assertThat(queryParams.keys()).isEqualTo(queryParamKeysCopy) + } + + @ParameterizedTest + @EnumSource + fun valuesAreImmutable(testCase: TestCase) { + val queryParams = testCase.queryParams + assumeThat(queryParams.size).isNotEqualTo(0) + val key = queryParams.keys().first() + val queryParamValuesCopy = queryParams.values(key).toList() + + val throwable = catchThrowable { + (queryParams.values(key) as MutableList).add("another value") + } + + assertThat(throwable).isInstanceOf(UnsupportedOperationException::class.java) + assertThat(queryParams.values(key)).isEqualTo(queryParamValuesCopy) + } +} diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertListParamsTest.kt index 74c8e2c6..cbf74f5d 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/AlertListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -38,23 +39,23 @@ class AlertListParamsTest { .limit(123L) .subscriptionId("subscription_id") .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("customer_id", listOf("customer_id")) - expected.put("external_customer_id", listOf("external_customer_id")) - expected.put("limit", listOf("123")) - expected.put("subscription_id", listOf("subscription_id")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("customer_id", "customer_id") + expected.put("external_customer_id", "external_customer_id") + expected.put("limit", "123") + expected.put("subscription_id", "subscription_id") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = AlertListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponListParamsTest.kt index 60f852c8..1600ca5b 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -27,18 +28,18 @@ class CouponListParamsTest { .redemptionCode("redemption_code") .showArchived(true) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - expected.put("redemption_code", listOf("redemption_code")) - expected.put("show_archived", listOf("true")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + expected.put("redemption_code", "redemption_code") + expected.put("show_archived", "true") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CouponListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponSubscriptionListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponSubscriptionListParamsTest.kt index f72d462b..298aebb8 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponSubscriptionListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CouponSubscriptionListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -25,17 +26,17 @@ class CouponSubscriptionListParamsTest { .cursor("cursor") .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CouponSubscriptionListParams.builder().couponId("coupon_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteListParamsTest.kt index 98b8fbb2..27660706 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CreditNoteListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -16,16 +17,16 @@ class CreditNoteListParamsTest { @Test fun getQueryParams() { val params = CreditNoteListParams.builder().cursor("cursor").limit(123L).build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CreditNoteListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParamsTest.kt index f0a938cb..5afe2ed4 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerBalanceTransactionListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -34,22 +35,22 @@ class CustomerBalanceTransactionListParamsTest { .operationTimeLt(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) .operationTimeLte(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - expected.put("operation_time[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("operation_time[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("operation_time[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("operation_time[lte]", listOf("2019-12-27T18:11:19.117Z")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + expected.put("operation_time[gt]", "2019-12-27T18:11:19.117Z") + expected.put("operation_time[gte]", "2019-12-27T18:11:19.117Z") + expected.put("operation_time[lt]", "2019-12-27T18:11:19.117Z") + expected.put("operation_time[lte]", "2019-12-27T18:11:19.117Z") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerBalanceTransactionListParams.builder().customerId("customer_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParamsTest.kt index 2d31b5fe..ed92fe0f 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListByExternalIdParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -30,15 +31,12 @@ class CustomerCostListByExternalIdParamsTest { .timeframeStart(OffsetDateTime.parse("2022-02-01T05:00:00Z")) .viewMode(CustomerCostListByExternalIdParams.ViewMode.PERIODIC) .build() - val expected = mutableMapOf>() - expected.put("currency", listOf("currency")) - expected.put("timeframe_end", listOf("2022-03-01T05:00:00Z")) - expected.put("timeframe_start", listOf("2022-02-01T05:00:00Z")) - expected.put( - "view_mode", - listOf(CustomerCostListByExternalIdParams.ViewMode.PERIODIC.toString()) - ) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("currency", "currency") + expected.put("timeframe_end", "2022-03-01T05:00:00Z") + expected.put("timeframe_start", "2022-02-01T05:00:00Z") + expected.put("view_mode", CustomerCostListByExternalIdParams.ViewMode.PERIODIC.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -47,8 +45,8 @@ class CustomerCostListByExternalIdParamsTest { CustomerCostListByExternalIdParams.builder() .externalCustomerId("external_customer_id") .build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListParamsTest.kt index a4b32838..123ef143 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCostListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -30,19 +31,19 @@ class CustomerCostListParamsTest { .timeframeStart(OffsetDateTime.parse("2022-02-01T05:00:00Z")) .viewMode(CustomerCostListParams.ViewMode.PERIODIC) .build() - val expected = mutableMapOf>() - expected.put("currency", listOf("currency")) - expected.put("timeframe_end", listOf("2022-03-01T05:00:00Z")) - expected.put("timeframe_start", listOf("2022-02-01T05:00:00Z")) - expected.put("view_mode", listOf(CustomerCostListParams.ViewMode.PERIODIC.toString())) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("currency", "currency") + expected.put("timeframe_end", "2022-03-01T05:00:00Z") + expected.put("timeframe_start", "2022-02-01T05:00:00Z") + expected.put("view_mode", CustomerCostListParams.ViewMode.PERIODIC.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerCostListParams.builder().customerId("customer_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParamsTest.kt index c973abbc..266a4c08 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListByExternalIdParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -42,24 +43,24 @@ class CustomerCreditLedgerListByExternalIdParamsTest { .limit(123L) .minimumAmount("minimum_amount") .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("currency", listOf("currency")) - expected.put("cursor", listOf("cursor")) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("currency", "currency") + expected.put("cursor", "cursor") expected.put( "entry_status", - listOf(CustomerCreditLedgerListByExternalIdParams.EntryStatus.COMMITTED.toString()) + CustomerCreditLedgerListByExternalIdParams.EntryStatus.COMMITTED.toString() ) expected.put( "entry_type", - listOf(CustomerCreditLedgerListByExternalIdParams.EntryType.INCREMENT.toString()) + CustomerCreditLedgerListByExternalIdParams.EntryType.INCREMENT.toString() ) - expected.put("limit", listOf("123")) - expected.put("minimum_amount", listOf("minimum_amount")) - assertThat(params.getQueryParams()).isEqualTo(expected) + expected.put("limit", "123") + expected.put("minimum_amount", "minimum_amount") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -68,8 +69,8 @@ class CustomerCreditLedgerListByExternalIdParamsTest { CustomerCreditLedgerListByExternalIdParams.builder() .externalCustomerId("external_customer_id") .build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListParamsTest.kt index 71e0ff37..72a47036 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditLedgerListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -42,31 +43,28 @@ class CustomerCreditLedgerListParamsTest { .limit(123L) .minimumAmount("minimum_amount") .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("currency", listOf("currency")) - expected.put("cursor", listOf("cursor")) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("currency", "currency") + expected.put("cursor", "cursor") expected.put( "entry_status", - listOf(CustomerCreditLedgerListParams.EntryStatus.COMMITTED.toString()) + CustomerCreditLedgerListParams.EntryStatus.COMMITTED.toString() ) - expected.put( - "entry_type", - listOf(CustomerCreditLedgerListParams.EntryType.INCREMENT.toString()) - ) - expected.put("limit", listOf("123")) - expected.put("minimum_amount", listOf("minimum_amount")) - assertThat(params.getQueryParams()).isEqualTo(expected) + expected.put("entry_type", CustomerCreditLedgerListParams.EntryType.INCREMENT.toString()) + expected.put("limit", "123") + expected.put("minimum_amount", "minimum_amount") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerCreditLedgerListParams.builder().customerId("customer_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParamsTest.kt index 7b1e59b9..5becab64 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListByExternalIdParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -29,12 +30,12 @@ class CustomerCreditListByExternalIdParamsTest { .includeAllBlocks(true) .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("currency", listOf("currency")) - expected.put("cursor", listOf("cursor")) - expected.put("include_all_blocks", listOf("true")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("currency", "currency") + expected.put("cursor", "cursor") + expected.put("include_all_blocks", "true") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -43,8 +44,8 @@ class CustomerCreditListByExternalIdParamsTest { CustomerCreditListByExternalIdParams.builder() .externalCustomerId("external_customer_id") .build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListParamsTest.kt index 9b68e442..cee59270 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -29,19 +30,19 @@ class CustomerCreditListParamsTest { .includeAllBlocks(true) .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("currency", listOf("currency")) - expected.put("cursor", listOf("cursor")) - expected.put("include_all_blocks", listOf("true")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("currency", "currency") + expected.put("cursor", "cursor") + expected.put("include_all_blocks", "true") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerCreditListParams.builder().customerId("customer_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParamsTest.kt index 9484eede..5053b841 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListByExternalIdParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -25,10 +26,10 @@ class CustomerCreditTopUpListByExternalIdParamsTest { .cursor("cursor") .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -37,8 +38,8 @@ class CustomerCreditTopUpListByExternalIdParamsTest { CustomerCreditTopUpListByExternalIdParams.builder() .externalCustomerId("external_customer_id") .build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListParamsTest.kt index 3277e8c1..478d0112 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerCreditTopUpListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -25,17 +26,17 @@ class CustomerCreditTopUpListParamsTest { .cursor("cursor") .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerCreditTopUpListParams.builder().customerId("customer_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerListParamsTest.kt index 1ac8074d..63e66d4e 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/CustomerListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -32,20 +33,20 @@ class CustomerListParamsTest { .cursor("cursor") .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = CustomerListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillListParamsTest.kt index 426bd12f..fd34634a 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventBackfillListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -16,16 +17,16 @@ class EventBackfillListParamsTest { @Test fun getQueryParams() { val params = EventBackfillListParams.builder().cursor("cursor").limit(123L).build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = EventBackfillListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt index 181511e1..b6d89234 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventIngestParamsTest.kt @@ -3,6 +3,7 @@ package com.withorb.api.models import com.withorb.api.core.JsonValue +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -49,10 +50,10 @@ class EventIngestParamsTest { .backfillId("backfill_id") .debug(true) .build() - val expected = mutableMapOf>() - expected.put("backfill_id", listOf("backfill_id")) - expected.put("debug", listOf("true")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("backfill_id", "backfill_id") + expected.put("debug", "true") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -70,8 +71,8 @@ class EventIngestParamsTest { ) ) .build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventVolumeListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventVolumeListParamsTest.kt index 3b108799..3104308a 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/EventVolumeListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/EventVolumeListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -28,12 +29,12 @@ class EventVolumeListParamsTest { .limit(123L) .timeframeEnd(OffsetDateTime.parse("2024-10-11T06:00:00Z")) .build() - val expected = mutableMapOf>() - expected.put("timeframe_start", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - expected.put("timeframe_end", listOf("2024-10-11T06:00:00Z")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("timeframe_start", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("limit", "123") + expected.put("timeframe_end", "2024-10-11T06:00:00Z") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test @@ -42,8 +43,8 @@ class EventVolumeListParamsTest { EventVolumeListParams.builder() .timeframeStart(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) .build() - val expected = mutableMapOf>() - expected.put("timeframe_start", listOf("2019-12-27T18:11:19.117Z")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("timeframe_start", "2019-12-27T18:11:19.117Z") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParamsTest.kt index 14145141..e273fcf8 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceFetchUpcomingParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -16,16 +17,16 @@ class InvoiceFetchUpcomingParamsTest { @Test fun getQueryParams() { val params = InvoiceFetchUpcomingParams.builder().subscriptionId("subscription_id").build() - val expected = mutableMapOf>() - expected.put("subscription_id", listOf("subscription_id")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("subscription_id", "subscription_id") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = InvoiceFetchUpcomingParams.builder().subscriptionId("subscription_id").build() - val expected = mutableMapOf>() - expected.put("subscription_id", listOf("subscription_id")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("subscription_id", "subscription_id") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceListParamsTest.kt index bd1ee662..2cae690d 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/InvoiceListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.LocalDate import java.time.OffsetDateTime @@ -59,33 +60,33 @@ class InvoiceListParamsTest { .status(listOf(InvoiceListParams.Status.DRAFT)) .subscriptionId("subscription_id") .build() - val expected = mutableMapOf>() - expected.put("amount", listOf("amount")) - expected.put("amount[gt]", listOf("amount[gt]")) - expected.put("amount[lt]", listOf("amount[lt]")) - expected.put("cursor", listOf("cursor")) - expected.put("customer_id", listOf("customer_id")) - expected.put("date_type", listOf(InvoiceListParams.DateType.DUE_DATE.toString())) - expected.put("due_date", listOf("2019-12-27")) - expected.put("due_date_window", listOf("due_date_window")) - expected.put("due_date[gt]", listOf("2019-12-27")) - expected.put("due_date[lt]", listOf("2019-12-27")) - expected.put("external_customer_id", listOf("external_customer_id")) - expected.put("invoice_date[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("invoice_date[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("invoice_date[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("invoice_date[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("is_recurring", listOf("true")) - expected.put("limit", listOf("123")) - expected.put("status[]", listOf(InvoiceListParams.Status.DRAFT.toString())) - expected.put("subscription_id", listOf("subscription_id")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("amount", "amount") + expected.put("amount[gt]", "amount[gt]") + expected.put("amount[lt]", "amount[lt]") + expected.put("cursor", "cursor") + expected.put("customer_id", "customer_id") + expected.put("date_type", InvoiceListParams.DateType.DUE_DATE.toString()) + expected.put("due_date", "2019-12-27") + expected.put("due_date_window", "due_date_window") + expected.put("due_date[gt]", "2019-12-27") + expected.put("due_date[lt]", "2019-12-27") + expected.put("external_customer_id", "external_customer_id") + expected.put("invoice_date[gt]", "2019-12-27T18:11:19.117Z") + expected.put("invoice_date[gte]", "2019-12-27T18:11:19.117Z") + expected.put("invoice_date[lt]", "2019-12-27T18:11:19.117Z") + expected.put("invoice_date[lte]", "2019-12-27T18:11:19.117Z") + expected.put("is_recurring", "true") + expected.put("limit", "123") + expected.put("status[]", InvoiceListParams.Status.DRAFT.toString()) + expected.put("subscription_id", "subscription_id") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = InvoiceListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemListParamsTest.kt index b281eb71..d5cd9b81 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/ItemListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -16,16 +17,16 @@ class ItemListParamsTest { @Test fun getQueryParams() { val params = ItemListParams.builder().cursor("cursor").limit(123L).build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = ItemListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricListParamsTest.kt index 0e6b24a2..4fc11ae6 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/MetricListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -32,20 +33,20 @@ class MetricListParamsTest { .cursor("cursor") .limit(123L) .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = MetricListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanListParamsTest.kt index 8e3b18ee..af8d6983 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PlanListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -34,21 +35,21 @@ class PlanListParamsTest { .limit(123L) .status(PlanListParams.Status.ACTIVE) .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - expected.put("status", listOf(PlanListParams.Status.ACTIVE.toString())) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("limit", "123") + expected.put("status", PlanListParams.Status.ACTIVE.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = PlanListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceListParamsTest.kt index 30827be4..81abe351 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/PriceListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test @@ -16,16 +17,16 @@ class PriceListParamsTest { @Test fun getQueryParams() { val params = PriceListParams.builder().cursor("cursor").limit(123L).build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = PriceListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchCostsParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchCostsParamsTest.kt index 324f7a0d..47303d2f 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchCostsParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchCostsParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -30,20 +31,20 @@ class SubscriptionFetchCostsParamsTest { .timeframeStart(OffsetDateTime.parse("2022-02-01T05:00:00Z")) .viewMode(SubscriptionFetchCostsParams.ViewMode.PERIODIC) .build() - val expected = mutableMapOf>() - expected.put("currency", listOf("currency")) - expected.put("timeframe_end", listOf("2022-03-01T05:00:00Z")) - expected.put("timeframe_start", listOf("2022-02-01T05:00:00Z")) - expected.put("view_mode", listOf(SubscriptionFetchCostsParams.ViewMode.PERIODIC.toString())) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("currency", "currency") + expected.put("timeframe_end", "2022-03-01T05:00:00Z") + expected.put("timeframe_start", "2022-02-01T05:00:00Z") + expected.put("view_mode", SubscriptionFetchCostsParams.ViewMode.PERIODIC.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = SubscriptionFetchCostsParams.builder().subscriptionId("subscription_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParamsTest.kt index 6f323d39..98eb7bec 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchScheduleParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -34,22 +35,22 @@ class SubscriptionFetchScheduleParamsTest { .startDateLt(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) .startDateLte(OffsetDateTime.parse("2019-12-27T18:11:19.117Z")) .build() - val expected = mutableMapOf>() - expected.put("cursor", listOf("cursor")) - expected.put("limit", listOf("123")) - expected.put("start_date[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("start_date[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("start_date[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("start_date[lte]", listOf("2019-12-27T18:11:19.117Z")) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("cursor", "cursor") + expected.put("limit", "123") + expected.put("start_date[gt]", "2019-12-27T18:11:19.117Z") + expected.put("start_date[gte]", "2019-12-27T18:11:19.117Z") + expected.put("start_date[lt]", "2019-12-27T18:11:19.117Z") + expected.put("start_date[lte]", "2019-12-27T18:11:19.117Z") + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = SubscriptionFetchScheduleParams.builder().subscriptionId("subscription_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchUsageParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchUsageParamsTest.kt index e57d2506..9a231299 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchUsageParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionFetchUsageParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -42,26 +43,26 @@ class SubscriptionFetchUsageParamsTest { .timeframeStart(OffsetDateTime.parse("2022-02-01T05:00:00Z")) .viewMode(SubscriptionFetchUsageParams.ViewMode.PERIODIC) .build() - val expected = mutableMapOf>() - expected.put("billable_metric_id", listOf("billable_metric_id")) - expected.put("first_dimension_key", listOf("first_dimension_key")) - expected.put("first_dimension_value", listOf("first_dimension_value")) - expected.put("granularity", listOf(SubscriptionFetchUsageParams.Granularity.DAY.toString())) - expected.put("group_by", listOf("group_by")) - expected.put("second_dimension_key", listOf("second_dimension_key")) - expected.put("second_dimension_value", listOf("second_dimension_value")) - expected.put("timeframe_end", listOf("2022-03-01T05:00:00Z")) - expected.put("timeframe_start", listOf("2022-02-01T05:00:00Z")) - expected.put("view_mode", listOf(SubscriptionFetchUsageParams.ViewMode.PERIODIC.toString())) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("billable_metric_id", "billable_metric_id") + expected.put("first_dimension_key", "first_dimension_key") + expected.put("first_dimension_value", "first_dimension_value") + expected.put("granularity", SubscriptionFetchUsageParams.Granularity.DAY.toString()) + expected.put("group_by", "group_by") + expected.put("second_dimension_key", "second_dimension_key") + expected.put("second_dimension_value", "second_dimension_value") + expected.put("timeframe_end", "2022-03-01T05:00:00Z") + expected.put("timeframe_start", "2022-02-01T05:00:00Z") + expected.put("view_mode", SubscriptionFetchUsageParams.ViewMode.PERIODIC.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = SubscriptionFetchUsageParams.builder().subscriptionId("subscription_id").build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionListParamsTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionListParamsTest.kt index 4aaa85df..f82e2197 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionListParamsTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/models/SubscriptionListParamsTest.kt @@ -2,6 +2,7 @@ package com.withorb.api.models +import com.withorb.api.core.http.QueryParams import com.withorb.api.models.* import java.time.OffsetDateTime import org.assertj.core.api.Assertions.assertThat @@ -38,23 +39,23 @@ class SubscriptionListParamsTest { .limit(123L) .status(SubscriptionListParams.Status.ACTIVE) .build() - val expected = mutableMapOf>() - expected.put("created_at[gt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[gte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lt]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("created_at[lte]", listOf("2019-12-27T18:11:19.117Z")) - expected.put("cursor", listOf("cursor")) - expected.put("customer_id[]", listOf("string")) - expected.put("external_customer_id", listOf("external_customer_id")) - expected.put("limit", listOf("123")) - expected.put("status", listOf(SubscriptionListParams.Status.ACTIVE.toString())) - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + expected.put("created_at[gt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[gte]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lt]", "2019-12-27T18:11:19.117Z") + expected.put("created_at[lte]", "2019-12-27T18:11:19.117Z") + expected.put("cursor", "cursor") + expected.put("customer_id[]", "string") + expected.put("external_customer_id", "external_customer_id") + expected.put("limit", "123") + expected.put("status", SubscriptionListParams.Status.ACTIVE.toString()) + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } @Test fun getQueryParamsWithoutOptionalFields() { val params = SubscriptionListParams.builder().build() - val expected = mutableMapOf>() - assertThat(params.getQueryParams()).isEqualTo(expected) + val expected = QueryParams.builder() + assertThat(params.getQueryParams()).isEqualTo(expected.build()) } } diff --git a/orb-java-core/src/test/kotlin/com/withorb/api/services/ErrorHandlingTest.kt b/orb-java-core/src/test/kotlin/com/withorb/api/services/ErrorHandlingTest.kt index a59ca5e5..e5b945fa 100644 --- a/orb-java-core/src/test/kotlin/com/withorb/api/services/ErrorHandlingTest.kt +++ b/orb-java-core/src/test/kotlin/com/withorb/api/services/ErrorHandlingTest.kt @@ -7,15 +7,15 @@ import com.github.tomakehurst.wiremock.client.WireMock.anyUrl import com.github.tomakehurst.wiremock.client.WireMock.get import com.github.tomakehurst.wiremock.client.WireMock.ok import com.github.tomakehurst.wiremock.client.WireMock.post +import com.github.tomakehurst.wiremock.client.WireMock.put import com.github.tomakehurst.wiremock.client.WireMock.status import com.github.tomakehurst.wiremock.client.WireMock.stubFor import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo import com.github.tomakehurst.wiremock.junit5.WireMockTest -import com.google.common.collect.ImmutableListMultimap -import com.google.common.collect.ListMultimap import com.withorb.api.client.OrbClient import com.withorb.api.client.okhttp.OrbOkHttpClient import com.withorb.api.core.JsonString +import com.withorb.api.core.http.Headers import com.withorb.api.core.jsonMapper import com.withorb.api.errors.BadRequestException import com.withorb.api.errors.InternalServerException @@ -283,7 +283,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertBadRequest(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertBadRequest(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -368,7 +368,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertUnauthorized(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertUnauthorized(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -453,7 +453,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertPermissionDenied(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertPermissionDenied(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -538,7 +538,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertNotFound(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertNotFound(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -623,7 +623,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertUnprocessableEntity(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertUnprocessableEntity(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -708,7 +708,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertRateLimit(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertRateLimit(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -793,7 +793,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertInternalServer(e, ImmutableListMultimap.of("Foo", "Bar"), ORB_ERROR) + assertInternalServer(e, Headers.builder().put("Foo", "Bar").build(), ORB_ERROR) }) } @@ -881,7 +881,7 @@ class ErrorHandlingTest { assertUnexpectedStatusCodeException( e, 999, - ImmutableListMultimap.of("Foo", "Bar"), + Headers.builder().put("Foo", "Bar").build(), toJson(ORB_ERROR) ) }) @@ -1049,7 +1049,7 @@ class ErrorHandlingTest { assertThatThrownBy({ client.customers().create(params) }) .satisfies({ e -> - assertBadRequest(e, ImmutableListMultimap.of(), OrbError.builder().build()) + assertBadRequest(e, Headers.builder().build(), OrbError.builder().build()) }) } @@ -1060,7 +1060,7 @@ class ErrorHandlingTest { private fun assertUnexpectedStatusCodeException( throwable: Throwable, statusCode: Int, - headers: ListMultimap, + headers: Headers, responseBody: ByteArray ) { assertThat(throwable) @@ -1070,43 +1070,31 @@ class ErrorHandlingTest { .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(statusCode) assertThat(e.body()).isEqualTo(String(responseBody)) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertBadRequest( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertBadRequest(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf(InstanceOfAssertFactories.throwable(BadRequestException::class.java)) .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(400) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertUnauthorized( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertUnauthorized(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf(InstanceOfAssertFactories.throwable(UnauthorizedException::class.java)) .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(401) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertPermissionDenied( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertPermissionDenied(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf( InstanceOfAssertFactories.throwable(PermissionDeniedException::class.java) @@ -1114,29 +1102,21 @@ class ErrorHandlingTest { .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(403) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertNotFound( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertNotFound(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf(InstanceOfAssertFactories.throwable(NotFoundException::class.java)) .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(404) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertUnprocessableEntity( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertUnprocessableEntity(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf( InstanceOfAssertFactories.throwable(UnprocessableEntityException::class.java) @@ -1144,35 +1124,32 @@ class ErrorHandlingTest { .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(422) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertRateLimit( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertRateLimit(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf(InstanceOfAssertFactories.throwable(RateLimitException::class.java)) .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(429) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } - private fun assertInternalServer( - throwable: Throwable, - headers: ListMultimap, - error: OrbError - ) { + private fun assertInternalServer(throwable: Throwable, headers: Headers, error: OrbError) { assertThat(throwable) .asInstanceOf(InstanceOfAssertFactories.throwable(InternalServerException::class.java)) .satisfies({ e -> assertThat(e.statusCode()).isEqualTo(500) assertThat(e.error()).isEqualTo(error) - assertThat(e.headers()).containsAllEntriesOf(headers) + assertThat(e.headers().toMap()).containsAllEntriesOf(headers.toMap()) }) } + + private fun Headers.toMap(): Map> = + mutableMapOf>().also { map -> + names().forEach { map[it] = values(it) } + } }