Skip to content

Commit 3c8d692

Browse files
stainless-botstainless-app[bot]
authored andcommitted
refactor(client): http request methods
1 parent 6389e57 commit 3c8d692

83 files changed

Lines changed: 1306 additions & 1279 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientAsyncImpl.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,10 +201,10 @@ constructor(
201201
HttpRequest.builder()
202202
.method(HttpMethod.GET)
203203
.addPathSegments("v1", "status")
204-
.putAllQueryParams(clientOptions.queryParams)
205-
.putAllQueryParams(params.getQueryParams())
206-
.putAllHeaders(clientOptions.headers)
207-
.putAllHeaders(params.getHeaders())
204+
.putAllQueryParams(clientOptions.queryParams.asMap())
205+
.replaceAllQueryParams(params.getQueryParams())
206+
.putAllHeaders(clientOptions.headers.asMap())
207+
.replaceAllHeaders(params.getHeaders())
208208
.build()
209209
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
210210
->

lithic-java-core/src/main/kotlin/com/lithic/api/client/LithicClientImpl.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,10 @@ constructor(
185185
HttpRequest.builder()
186186
.method(HttpMethod.GET)
187187
.addPathSegments("v1", "status")
188-
.putAllQueryParams(clientOptions.queryParams)
189-
.putAllQueryParams(params.getQueryParams())
190-
.putAllHeaders(clientOptions.headers)
191-
.putAllHeaders(params.getHeaders())
188+
.putAllQueryParams(clientOptions.queryParams.asMap())
189+
.replaceAllQueryParams(params.getQueryParams())
190+
.putAllHeaders(clientOptions.headers.asMap())
191+
.replaceAllHeaders(params.getHeaders())
192192
.build()
193193
return clientOptions.httpClient.execute(request, requestOptions).let { response ->
194194
response

lithic-java-core/src/main/kotlin/com/lithic/api/core/http/HttpRequest.kt

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.lithic.api.core.http
22

33
import com.google.common.collect.ArrayListMultimap
44
import com.google.common.collect.ListMultimap
5-
import com.google.common.collect.Multimap
65
import com.google.common.collect.MultimapBuilder
76
import com.lithic.api.core.toImmutable
87

@@ -11,13 +10,13 @@ private constructor(
1110
@get:JvmName("method") val method: HttpMethod,
1211
@get:JvmName("url") val url: String?,
1312
@get:JvmName("pathSegments") val pathSegments: List<String>,
14-
@get:JvmName("queryParams") val queryParams: ListMultimap<String, String>,
1513
@get:JvmName("headers") val headers: ListMultimap<String, String>,
14+
@get:JvmName("queryParams") val queryParams: ListMultimap<String, String>,
1615
@get:JvmName("body") val body: HttpRequestBody?,
1716
) {
1817

1918
override fun toString(): String =
20-
"HttpRequest{method=$method, pathSegments=$pathSegments, queryParams=$queryParams, headers=$headers, body=$body}"
19+
"HttpRequest{method=$method, url=$url, pathSegments=$pathSegments, headers=$headers, queryParams=$queryParams, body=$body}"
2120

2221
companion object {
2322
@JvmStatic fun builder() = Builder()
@@ -27,65 +26,93 @@ private constructor(
2726

2827
private var method: HttpMethod? = null
2928
private var url: String? = null
30-
private var pathSegments: MutableList<String> = ArrayList()
31-
private var queryParams: ListMultimap<String, String> = ArrayListMultimap.create()
32-
private var body: HttpRequestBody? = null
29+
private var pathSegments: MutableList<String> = mutableListOf()
3330
private var headers: ListMultimap<String, String> =
3431
MultimapBuilder.treeKeys(String.CASE_INSENSITIVE_ORDER).arrayListValues().build()
32+
private var queryParams: ListMultimap<String, String> = ArrayListMultimap.create()
33+
private var body: HttpRequestBody? = null
3534

3635
fun method(method: HttpMethod) = apply { this.method = method }
3736

3837
fun url(url: String) = apply { this.url = url }
3938

40-
fun addPathSegment(pathSegment: String) = apply { this.pathSegments.add(pathSegment) }
39+
fun addPathSegment(pathSegment: String) = apply { pathSegments.add(pathSegment) }
4140

4241
fun addPathSegments(vararg pathSegments: String) = apply {
43-
for (pathSegment in pathSegments) {
44-
this.pathSegments.add(pathSegment)
45-
}
42+
this.pathSegments.addAll(pathSegments)
4643
}
4744

48-
fun putQueryParam(name: String, value: String) = apply {
49-
this.queryParams.replaceValues(name, listOf(value))
45+
fun headers(headers: Map<String, Iterable<String>>) = apply {
46+
this.headers.clear()
47+
putAllHeaders(headers)
5048
}
5149

52-
fun putQueryParams(name: String, values: Iterable<String>) = apply {
53-
this.queryParams.replaceValues(name, values)
50+
fun putHeader(name: String, value: String) = apply { headers.put(name, value) }
51+
52+
fun putHeaders(name: String, values: Iterable<String>) = apply {
53+
headers.putAll(name, values)
5454
}
5555

56-
fun putAllQueryParams(queryParams: Map<String, Iterable<String>>) = apply {
57-
queryParams.forEach(this::putQueryParams)
56+
fun putAllHeaders(headers: Map<String, Iterable<String>>) = apply {
57+
headers.forEach(::putHeaders)
5858
}
5959

60-
fun putAllQueryParams(queryParams: Multimap<String, String>) = apply {
61-
queryParams.asMap().forEach(this::putQueryParams)
60+
fun replaceHeaders(name: String, value: String) = apply {
61+
headers.replaceValues(name, listOf(value))
6262
}
6363

64-
fun putHeader(name: String, value: String) = apply {
65-
this.headers.replaceValues(name, listOf(value))
64+
fun replaceHeaders(name: String, values: Iterable<String>) = apply {
65+
headers.replaceValues(name, values)
6666
}
6767

68-
fun putHeaders(name: String, values: Iterable<String>) = apply {
69-
this.headers.replaceValues(name, values)
68+
fun replaceAllHeaders(headers: Map<String, Iterable<String>>) = apply {
69+
headers.forEach(::replaceHeaders)
7070
}
7171

72-
fun putAllHeaders(headers: Map<String, Iterable<String>>) = apply {
73-
headers.forEach(this::putHeaders)
72+
fun removeHeaders(name: String) = apply { headers.removeAll(name) }
73+
74+
fun removeAllHeaders(names: Set<String>) = apply { names.forEach(::removeHeaders) }
75+
76+
fun queryParams(queryParams: Map<String, Iterable<String>>) = apply {
77+
this.queryParams.clear()
78+
putAllQueryParams(queryParams)
7479
}
7580

76-
fun putAllHeaders(headers: Multimap<String, String>) = apply {
77-
headers.asMap().forEach(this::putHeaders)
81+
fun putQueryParam(key: String, value: String) = apply { queryParams.put(key, value) }
82+
83+
fun putQueryParams(key: String, values: Iterable<String>) = apply {
84+
queryParams.putAll(key, values)
85+
}
86+
87+
fun putAllQueryParams(queryParams: Map<String, Iterable<String>>) = apply {
88+
queryParams.forEach(::putQueryParams)
89+
}
90+
91+
fun replaceQueryParams(key: String, value: String) = apply {
92+
queryParams.replaceValues(key, listOf(value))
93+
}
94+
95+
fun replaceQueryParams(key: String, values: Iterable<String>) = apply {
96+
queryParams.replaceValues(key, values)
97+
}
98+
99+
fun replaceAllQueryParams(queryParams: Map<String, Iterable<String>>) = apply {
100+
queryParams.forEach(::replaceQueryParams)
78101
}
79102

103+
fun removeQueryParams(key: String) = apply { queryParams.removeAll(key) }
104+
105+
fun removeAllQueryParams(keys: Set<String>) = apply { keys.forEach(::removeQueryParams) }
106+
80107
fun body(body: HttpRequestBody) = apply { this.body = body }
81108

82109
fun build(): HttpRequest =
83110
HttpRequest(
84111
checkNotNull(method) { "`method` is required but was not set" },
85112
url,
86113
pathSegments.toImmutable(),
87-
queryParams.toImmutable(),
88114
headers,
115+
queryParams.toImmutable(),
89116
body,
90117
)
91118
}

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/AccountHolderServiceAsyncImpl.kt

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ constructor(
5858
HttpRequest.builder()
5959
.method(HttpMethod.POST)
6060
.addPathSegments("v1", "account_holders")
61-
.putAllQueryParams(clientOptions.queryParams)
62-
.putAllQueryParams(params.getQueryParams())
63-
.putAllHeaders(clientOptions.headers)
64-
.putAllHeaders(params.getHeaders())
61+
.putAllQueryParams(clientOptions.queryParams.asMap())
62+
.replaceAllQueryParams(params.getQueryParams())
63+
.putAllHeaders(clientOptions.headers.asMap())
64+
.replaceAllHeaders(params.getHeaders())
6565
.body(json(clientOptions.jsonMapper, params.getBody()))
6666
.build()
6767
return clientOptions.httpClient
@@ -94,10 +94,10 @@ constructor(
9494
HttpRequest.builder()
9595
.method(HttpMethod.GET)
9696
.addPathSegments("v1", "account_holders", params.getPathParam(0))
97-
.putAllQueryParams(clientOptions.queryParams)
98-
.putAllQueryParams(params.getQueryParams())
99-
.putAllHeaders(clientOptions.headers)
100-
.putAllHeaders(params.getHeaders())
97+
.putAllQueryParams(clientOptions.queryParams.asMap())
98+
.replaceAllQueryParams(params.getQueryParams())
99+
.putAllHeaders(clientOptions.headers.asMap())
100+
.replaceAllHeaders(params.getHeaders())
101101
.build()
102102
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
103103
->
@@ -124,10 +124,10 @@ constructor(
124124
HttpRequest.builder()
125125
.method(HttpMethod.PATCH)
126126
.addPathSegments("v1", "account_holders", params.getPathParam(0))
127-
.putAllQueryParams(clientOptions.queryParams)
128-
.putAllQueryParams(params.getQueryParams())
129-
.putAllHeaders(clientOptions.headers)
130-
.putAllHeaders(params.getHeaders())
127+
.putAllQueryParams(clientOptions.queryParams.asMap())
128+
.replaceAllQueryParams(params.getQueryParams())
129+
.putAllHeaders(clientOptions.headers.asMap())
130+
.replaceAllHeaders(params.getHeaders())
131131
.body(json(clientOptions.jsonMapper, params.getBody()))
132132
.build()
133133
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -157,10 +157,10 @@ constructor(
157157
HttpRequest.builder()
158158
.method(HttpMethod.GET)
159159
.addPathSegments("v1", "account_holders")
160-
.putAllQueryParams(clientOptions.queryParams)
161-
.putAllQueryParams(params.getQueryParams())
162-
.putAllHeaders(clientOptions.headers)
163-
.putAllHeaders(params.getHeaders())
160+
.putAllQueryParams(clientOptions.queryParams.asMap())
161+
.replaceAllQueryParams(params.getQueryParams())
162+
.putAllHeaders(clientOptions.headers.asMap())
163+
.replaceAllHeaders(params.getHeaders())
164164
.build()
165165
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
166166
->
@@ -202,10 +202,10 @@ constructor(
202202
HttpRequest.builder()
203203
.method(HttpMethod.GET)
204204
.addPathSegments("v1", "account_holders", params.getPathParam(0), "documents")
205-
.putAllQueryParams(clientOptions.queryParams)
206-
.putAllQueryParams(params.getQueryParams())
207-
.putAllHeaders(clientOptions.headers)
208-
.putAllHeaders(params.getHeaders())
205+
.putAllQueryParams(clientOptions.queryParams.asMap())
206+
.replaceAllQueryParams(params.getQueryParams())
207+
.putAllHeaders(clientOptions.headers.asMap())
208+
.replaceAllHeaders(params.getHeaders())
209209
.build()
210210
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
211211
->
@@ -239,10 +239,10 @@ constructor(
239239
HttpRequest.builder()
240240
.method(HttpMethod.POST)
241241
.addPathSegments("v1", "account_holders", params.getPathParam(0), "resubmit")
242-
.putAllQueryParams(clientOptions.queryParams)
243-
.putAllQueryParams(params.getQueryParams())
244-
.putAllHeaders(clientOptions.headers)
245-
.putAllHeaders(params.getHeaders())
242+
.putAllQueryParams(clientOptions.queryParams.asMap())
243+
.replaceAllQueryParams(params.getQueryParams())
244+
.putAllHeaders(clientOptions.headers.asMap())
245+
.replaceAllHeaders(params.getHeaders())
246246
.body(json(clientOptions.jsonMapper, params.getBody()))
247247
.build()
248248
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -289,10 +289,10 @@ constructor(
289289
"documents",
290290
params.getPathParam(1)
291291
)
292-
.putAllQueryParams(clientOptions.queryParams)
293-
.putAllQueryParams(params.getQueryParams())
294-
.putAllHeaders(clientOptions.headers)
295-
.putAllHeaders(params.getHeaders())
292+
.putAllQueryParams(clientOptions.queryParams.asMap())
293+
.replaceAllQueryParams(params.getQueryParams())
294+
.putAllHeaders(clientOptions.headers.asMap())
295+
.replaceAllHeaders(params.getHeaders())
296296
.build()
297297
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
298298
->
@@ -318,10 +318,10 @@ constructor(
318318
HttpRequest.builder()
319319
.method(HttpMethod.POST)
320320
.addPathSegments("v1", "simulate", "account_holders", "enrollment_document_review")
321-
.putAllQueryParams(clientOptions.queryParams)
322-
.putAllQueryParams(params.getQueryParams())
323-
.putAllHeaders(clientOptions.headers)
324-
.putAllHeaders(params.getHeaders())
321+
.putAllQueryParams(clientOptions.queryParams.asMap())
322+
.replaceAllQueryParams(params.getQueryParams())
323+
.putAllHeaders(clientOptions.headers.asMap())
324+
.replaceAllHeaders(params.getHeaders())
325325
.body(json(clientOptions.jsonMapper, params.getBody()))
326326
.build()
327327
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -353,10 +353,10 @@ constructor(
353353
HttpRequest.builder()
354354
.method(HttpMethod.POST)
355355
.addPathSegments("v1", "simulate", "account_holders", "enrollment_review")
356-
.putAllQueryParams(clientOptions.queryParams)
357-
.putAllQueryParams(params.getQueryParams())
358-
.putAllHeaders(clientOptions.headers)
359-
.putAllHeaders(params.getHeaders())
356+
.putAllQueryParams(clientOptions.queryParams.asMap())
357+
.replaceAllQueryParams(params.getQueryParams())
358+
.putAllHeaders(clientOptions.headers.asMap())
359+
.replaceAllHeaders(params.getHeaders())
360360
.body(json(clientOptions.jsonMapper, params.getBody()))
361361
.build()
362362
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -400,10 +400,10 @@ constructor(
400400
HttpRequest.builder()
401401
.method(HttpMethod.POST)
402402
.addPathSegments("v1", "account_holders", params.getPathParam(0), "documents")
403-
.putAllQueryParams(clientOptions.queryParams)
404-
.putAllQueryParams(params.getQueryParams())
405-
.putAllHeaders(clientOptions.headers)
406-
.putAllHeaders(params.getHeaders())
403+
.putAllQueryParams(clientOptions.queryParams.asMap())
404+
.replaceAllQueryParams(params.getQueryParams())
405+
.putAllHeaders(clientOptions.headers.asMap())
406+
.replaceAllHeaders(params.getHeaders())
407407
.body(json(clientOptions.jsonMapper, params.getBody()))
408408
.build()
409409
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/AccountServiceAsyncImpl.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ constructor(
4040
HttpRequest.builder()
4141
.method(HttpMethod.GET)
4242
.addPathSegments("v1", "accounts", params.getPathParam(0))
43-
.putAllQueryParams(clientOptions.queryParams)
44-
.putAllQueryParams(params.getQueryParams())
45-
.putAllHeaders(clientOptions.headers)
46-
.putAllHeaders(params.getHeaders())
43+
.putAllQueryParams(clientOptions.queryParams.asMap())
44+
.replaceAllQueryParams(params.getQueryParams())
45+
.putAllHeaders(clientOptions.headers.asMap())
46+
.replaceAllHeaders(params.getHeaders())
4747
.build()
4848
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
4949
->
@@ -73,10 +73,10 @@ constructor(
7373
HttpRequest.builder()
7474
.method(HttpMethod.PATCH)
7575
.addPathSegments("v1", "accounts", params.getPathParam(0))
76-
.putAllQueryParams(clientOptions.queryParams)
77-
.putAllQueryParams(params.getQueryParams())
78-
.putAllHeaders(clientOptions.headers)
79-
.putAllHeaders(params.getHeaders())
76+
.putAllQueryParams(clientOptions.queryParams.asMap())
77+
.replaceAllQueryParams(params.getQueryParams())
78+
.putAllHeaders(clientOptions.headers.asMap())
79+
.replaceAllHeaders(params.getHeaders())
8080
.body(json(clientOptions.jsonMapper, params.getBody()))
8181
.build()
8282
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -104,10 +104,10 @@ constructor(
104104
HttpRequest.builder()
105105
.method(HttpMethod.GET)
106106
.addPathSegments("v1", "accounts")
107-
.putAllQueryParams(clientOptions.queryParams)
108-
.putAllQueryParams(params.getQueryParams())
109-
.putAllHeaders(clientOptions.headers)
110-
.putAllHeaders(params.getHeaders())
107+
.putAllQueryParams(clientOptions.queryParams.asMap())
108+
.replaceAllQueryParams(params.getQueryParams())
109+
.putAllHeaders(clientOptions.headers.asMap())
110+
.replaceAllHeaders(params.getHeaders())
111111
.build()
112112
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
113113
->
@@ -139,10 +139,10 @@ constructor(
139139
HttpRequest.builder()
140140
.method(HttpMethod.GET)
141141
.addPathSegments("v1", "accounts", params.getPathParam(0), "spend_limits")
142-
.putAllQueryParams(clientOptions.queryParams)
143-
.putAllQueryParams(params.getQueryParams())
144-
.putAllHeaders(clientOptions.headers)
145-
.putAllHeaders(params.getHeaders())
142+
.putAllQueryParams(clientOptions.queryParams.asMap())
143+
.replaceAllQueryParams(params.getQueryParams())
144+
.putAllHeaders(clientOptions.headers.asMap())
145+
.replaceAllHeaders(params.getHeaders())
146146
.build()
147147
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
148148
->

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/AggregateBalanceServiceAsyncImpl.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ constructor(
3535
HttpRequest.builder()
3636
.method(HttpMethod.GET)
3737
.addPathSegments("v1", "aggregate_balances")
38-
.putAllQueryParams(clientOptions.queryParams)
39-
.putAllQueryParams(params.getQueryParams())
40-
.putAllHeaders(clientOptions.headers)
41-
.putAllHeaders(params.getHeaders())
38+
.putAllQueryParams(clientOptions.queryParams.asMap())
39+
.replaceAllQueryParams(params.getQueryParams())
40+
.putAllHeaders(clientOptions.headers.asMap())
41+
.replaceAllHeaders(params.getHeaders())
4242
.build()
4343
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
4444
->

0 commit comments

Comments
 (0)