Skip to content

Commit c6089f1

Browse files
stainless-botStainless Bot
authored andcommitted
refactor(client): http request methods
chore: unknown commit message
1 parent a72d1ea commit c6089f1

23 files changed

+254
-227
lines changed

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

Lines changed: 54 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.openai.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.openai.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
}

openai-java-core/src/main/kotlin/com/openai/services/async/BatchServiceAsyncImpl.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ constructor(
3939
HttpRequest.builder()
4040
.method(HttpMethod.POST)
4141
.addPathSegments("batches")
42-
.putAllQueryParams(clientOptions.queryParams)
43-
.putAllQueryParams(params.getQueryParams())
44-
.putAllHeaders(clientOptions.headers)
45-
.putAllHeaders(params.getHeaders())
42+
.putAllQueryParams(clientOptions.queryParams.asMap())
43+
.replaceAllQueryParams(params.getQueryParams())
44+
.putAllHeaders(clientOptions.headers.asMap())
45+
.replaceAllHeaders(params.getHeaders())
4646
.body(json(clientOptions.jsonMapper, params.getBody()))
4747
.build()
4848
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
@@ -69,10 +69,10 @@ constructor(
6969
HttpRequest.builder()
7070
.method(HttpMethod.GET)
7171
.addPathSegments("batches", params.getPathParam(0))
72-
.putAllQueryParams(clientOptions.queryParams)
73-
.putAllQueryParams(params.getQueryParams())
74-
.putAllHeaders(clientOptions.headers)
75-
.putAllHeaders(params.getHeaders())
72+
.putAllQueryParams(clientOptions.queryParams.asMap())
73+
.replaceAllQueryParams(params.getQueryParams())
74+
.putAllHeaders(clientOptions.headers.asMap())
75+
.replaceAllHeaders(params.getHeaders())
7676
.build()
7777
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
7878
->
@@ -99,10 +99,10 @@ constructor(
9999
HttpRequest.builder()
100100
.method(HttpMethod.GET)
101101
.addPathSegments("batches")
102-
.putAllQueryParams(clientOptions.queryParams)
103-
.putAllQueryParams(params.getQueryParams())
104-
.putAllHeaders(clientOptions.headers)
105-
.putAllHeaders(params.getHeaders())
102+
.putAllQueryParams(clientOptions.queryParams.asMap())
103+
.replaceAllQueryParams(params.getQueryParams())
104+
.putAllHeaders(clientOptions.headers.asMap())
105+
.replaceAllHeaders(params.getHeaders())
106106
.build()
107107
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
108108
->
@@ -133,10 +133,10 @@ constructor(
133133
HttpRequest.builder()
134134
.method(HttpMethod.POST)
135135
.addPathSegments("batches", params.getPathParam(0), "cancel")
136-
.putAllQueryParams(clientOptions.queryParams)
137-
.putAllQueryParams(params.getQueryParams())
138-
.putAllHeaders(clientOptions.headers)
139-
.putAllHeaders(params.getHeaders())
136+
.putAllQueryParams(clientOptions.queryParams.asMap())
137+
.replaceAllQueryParams(params.getQueryParams())
138+
.putAllHeaders(clientOptions.headers.asMap())
139+
.replaceAllHeaders(params.getHeaders())
140140
.apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } }
141141
.build()
142142
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/CompletionServiceAsyncImpl.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.POST)
3737
.addPathSegments("completions")
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
.body(json(clientOptions.jsonMapper, params.getBody()))
4343
.build()
4444
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/EmbeddingServiceAsyncImpl.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ constructor(
3636
HttpRequest.builder()
3737
.method(HttpMethod.POST)
3838
.addPathSegments("embeddings")
39-
.putAllQueryParams(clientOptions.queryParams)
40-
.putAllQueryParams(params.getQueryParams())
41-
.putAllHeaders(clientOptions.headers)
42-
.putAllHeaders(params.getHeaders())
39+
.putAllQueryParams(clientOptions.queryParams.asMap())
40+
.replaceAllQueryParams(params.getQueryParams())
41+
.putAllHeaders(clientOptions.headers.asMap())
42+
.replaceAllHeaders(params.getHeaders())
4343
.body(json(clientOptions.jsonMapper, params.getBody()))
4444
.build()
4545
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/FileServiceAsyncImpl.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ constructor(
3939
HttpRequest.builder()
4040
.method(HttpMethod.GET)
4141
.addPathSegments("files", params.getPathParam(0))
42-
.putAllQueryParams(clientOptions.queryParams)
43-
.putAllQueryParams(params.getQueryParams())
44-
.putAllHeaders(clientOptions.headers)
45-
.putAllHeaders(params.getHeaders())
42+
.putAllQueryParams(clientOptions.queryParams.asMap())
43+
.replaceAllQueryParams(params.getQueryParams())
44+
.putAllHeaders(clientOptions.headers.asMap())
45+
.replaceAllHeaders(params.getHeaders())
4646
.build()
4747
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
4848
->
@@ -69,10 +69,10 @@ constructor(
6969
HttpRequest.builder()
7070
.method(HttpMethod.GET)
7171
.addPathSegments("files")
72-
.putAllQueryParams(clientOptions.queryParams)
73-
.putAllQueryParams(params.getQueryParams())
74-
.putAllHeaders(clientOptions.headers)
75-
.putAllHeaders(params.getHeaders())
72+
.putAllQueryParams(clientOptions.queryParams.asMap())
73+
.replaceAllQueryParams(params.getQueryParams())
74+
.putAllHeaders(clientOptions.headers.asMap())
75+
.replaceAllHeaders(params.getHeaders())
7676
.build()
7777
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
7878
->
@@ -99,10 +99,10 @@ constructor(
9999
HttpRequest.builder()
100100
.method(HttpMethod.DELETE)
101101
.addPathSegments("files", params.getPathParam(0))
102-
.putAllQueryParams(clientOptions.queryParams)
103-
.putAllQueryParams(params.getQueryParams())
104-
.putAllHeaders(clientOptions.headers)
105-
.putAllHeaders(params.getHeaders())
102+
.putAllQueryParams(clientOptions.queryParams.asMap())
103+
.replaceAllQueryParams(params.getQueryParams())
104+
.putAllHeaders(clientOptions.headers.asMap())
105+
.replaceAllHeaders(params.getHeaders())
106106
.apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } }
107107
.build()
108108
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/ImageServiceAsyncImpl.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.POST)
3737
.addPathSegments("images", "generations")
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
.body(json(clientOptions.jsonMapper, params.getBody()))
4343
.build()
4444
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/ModelServiceAsyncImpl.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ constructor(
4242
HttpRequest.builder()
4343
.method(HttpMethod.GET)
4444
.addPathSegments("models", params.getPathParam(0))
45-
.putAllQueryParams(clientOptions.queryParams)
46-
.putAllQueryParams(params.getQueryParams())
47-
.putAllHeaders(clientOptions.headers)
48-
.putAllHeaders(params.getHeaders())
45+
.putAllQueryParams(clientOptions.queryParams.asMap())
46+
.replaceAllQueryParams(params.getQueryParams())
47+
.putAllHeaders(clientOptions.headers.asMap())
48+
.replaceAllHeaders(params.getHeaders())
4949
.build()
5050
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
5151
->
@@ -75,10 +75,10 @@ constructor(
7575
HttpRequest.builder()
7676
.method(HttpMethod.GET)
7777
.addPathSegments("models")
78-
.putAllQueryParams(clientOptions.queryParams)
79-
.putAllQueryParams(params.getQueryParams())
80-
.putAllHeaders(clientOptions.headers)
81-
.putAllHeaders(params.getHeaders())
78+
.putAllQueryParams(clientOptions.queryParams.asMap())
79+
.replaceAllQueryParams(params.getQueryParams())
80+
.putAllHeaders(clientOptions.headers.asMap())
81+
.replaceAllHeaders(params.getHeaders())
8282
.build()
8383
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response
8484
->
@@ -108,10 +108,10 @@ constructor(
108108
HttpRequest.builder()
109109
.method(HttpMethod.DELETE)
110110
.addPathSegments("models", params.getPathParam(0))
111-
.putAllQueryParams(clientOptions.queryParams)
112-
.putAllQueryParams(params.getQueryParams())
113-
.putAllHeaders(clientOptions.headers)
114-
.putAllHeaders(params.getHeaders())
111+
.putAllQueryParams(clientOptions.queryParams.asMap())
112+
.replaceAllQueryParams(params.getQueryParams())
113+
.putAllHeaders(clientOptions.headers.asMap())
114+
.replaceAllHeaders(params.getHeaders())
115115
.apply { params.getBody().ifPresent { body(json(clientOptions.jsonMapper, it)) } }
116116
.build()
117117
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

openai-java-core/src/main/kotlin/com/openai/services/async/ModerationServiceAsyncImpl.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ constructor(
3939
HttpRequest.builder()
4040
.method(HttpMethod.POST)
4141
.addPathSegments("moderations")
42-
.putAllQueryParams(clientOptions.queryParams)
43-
.putAllQueryParams(params.getQueryParams())
44-
.putAllHeaders(clientOptions.headers)
45-
.putAllHeaders(params.getHeaders())
42+
.putAllQueryParams(clientOptions.queryParams.asMap())
43+
.replaceAllQueryParams(params.getQueryParams())
44+
.putAllHeaders(clientOptions.headers.asMap())
45+
.replaceAllHeaders(params.getHeaders())
4646
.body(json(clientOptions.jsonMapper, params.getBody()))
4747
.build()
4848
return clientOptions.httpClient.executeAsync(request, requestOptions).thenApply { response

0 commit comments

Comments
 (0)