Skip to content

Commit 93141d4

Browse files
stainless-botStainless Bot
authored andcommitted
refactor(internal): polish ClientOptions
chore: unknown commit message
1 parent ef4d884 commit 93141d4

File tree

1 file changed

+24
-34
lines changed

1 file changed

+24
-34
lines changed

openai-java-core/src/main/kotlin/com/openai/core/ClientOptions.kt

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ private constructor(
1717
@get:JvmName("jsonMapper") val jsonMapper: JsonMapper,
1818
@get:JvmName("clock") val clock: Clock,
1919
@get:JvmName("baseUrl") val baseUrl: String,
20-
@get:JvmName("apiKey") val apiKey: String,
21-
@get:JvmName("organization") val organization: String?,
22-
@get:JvmName("project") val project: String?,
2320
@get:JvmName("headers") val headers: ListMultimap<String, String>,
2421
@get:JvmName("queryParams") val queryParams: ListMultimap<String, String>,
2522
@get:JvmName("responseValidation") val responseValidation: Boolean,
2623
@get:JvmName("maxRetries") val maxRetries: Int,
24+
@get:JvmName("apiKey") val apiKey: String,
25+
@get:JvmName("organization") val organization: String?,
26+
@get:JvmName("project") val project: String?,
2727
) {
2828

2929
fun toBuilder() = Builder().from(this)
@@ -40,11 +40,11 @@ private constructor(
4040
class Builder {
4141

4242
private var httpClient: HttpClient? = null
43-
private var jsonMapper: JsonMapper? = null
43+
private var jsonMapper: JsonMapper = jsonMapper()
4444
private var clock: Clock = Clock.systemUTC()
4545
private var baseUrl: String = PRODUCTION_URL
46-
private var headers: MutableMap<String, MutableList<String>> = mutableMapOf()
47-
private var queryParams: MutableMap<String, MutableList<String>> = mutableMapOf()
46+
private var headers: ListMultimap<String, String> = ArrayListMultimap.create()
47+
private var queryParams: ListMultimap<String, String> = ArrayListMultimap.create()
4848
private var responseValidation: Boolean = false
4949
private var maxRetries: Int = 2
5050
private var apiKey: String? = null
@@ -57,14 +57,8 @@ private constructor(
5757
jsonMapper = clientOptions.jsonMapper
5858
clock = clientOptions.clock
5959
baseUrl = clientOptions.baseUrl
60-
headers =
61-
clientOptions.headers.asMap().mapValuesTo(mutableMapOf()) { (_, value) ->
62-
value.toMutableList()
63-
}
64-
queryParams =
65-
clientOptions.queryParams.asMap().mapValuesTo(mutableMapOf()) { (_, value) ->
66-
value.toMutableList()
67-
}
60+
headers = ArrayListMultimap.create(clientOptions.headers)
61+
queryParams = ArrayListMultimap.create(clientOptions.queryParams)
6862
responseValidation = clientOptions.responseValidation
6963
maxRetries = clientOptions.maxRetries
7064
apiKey = clientOptions.apiKey
@@ -76,47 +70,43 @@ private constructor(
7670

7771
fun jsonMapper(jsonMapper: JsonMapper) = apply { this.jsonMapper = jsonMapper }
7872

79-
fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl }
80-
8173
fun clock(clock: Clock) = apply { this.clock = clock }
8274

75+
fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl }
76+
8377
fun headers(headers: Map<String, Iterable<String>>) = apply {
8478
this.headers.clear()
8579
putAllHeaders(headers)
8680
}
8781

88-
fun putHeader(name: String, value: String) = apply {
89-
this.headers.getOrPut(name) { mutableListOf() }.add(value)
90-
}
82+
fun putHeader(name: String, value: String) = apply { headers.put(name, value) }
9183

9284
fun putHeaders(name: String, values: Iterable<String>) = apply {
93-
this.headers.getOrPut(name) { mutableListOf() }.addAll(values)
85+
headers.putAll(name, values)
9486
}
9587

9688
fun putAllHeaders(headers: Map<String, Iterable<String>>) = apply {
97-
headers.forEach(this::putHeaders)
89+
headers.forEach(::putHeaders)
9890
}
9991

100-
fun removeHeader(name: String) = apply { this.headers.put(name, mutableListOf()) }
92+
fun removeHeader(name: String) = apply { headers.removeAll(name) }
10193

10294
fun queryParams(queryParams: Map<String, Iterable<String>>) = apply {
10395
this.queryParams.clear()
10496
putAllQueryParams(queryParams)
10597
}
10698

107-
fun putQueryParam(name: String, value: String) = apply {
108-
this.queryParams.getOrPut(name) { mutableListOf() }.add(value)
109-
}
99+
fun putQueryParam(name: String, value: String) = apply { queryParams.put(name, value) }
110100

111101
fun putQueryParams(name: String, values: Iterable<String>) = apply {
112-
this.queryParams.getOrPut(name) { mutableListOf() }.addAll(values)
102+
queryParams.putAll(name, values)
113103
}
114104

115105
fun putAllQueryParams(queryParams: Map<String, Iterable<String>>) = apply {
116-
queryParams.forEach(this::putQueryParams)
106+
queryParams.forEach(::putQueryParams)
117107
}
118108

119-
fun removeQueryParam(name: String) = apply { this.queryParams.put(name, mutableListOf()) }
109+
fun removeQueryParam(name: String) = apply { queryParams.removeAll(name) }
120110

121111
fun responseValidation(responseValidation: Boolean) = apply {
122112
this.responseValidation = responseValidation
@@ -158,8 +148,8 @@ private constructor(
158148
if (!apiKey.isNullOrEmpty()) {
159149
headers.put("Authorization", "Bearer ${apiKey}")
160150
}
161-
this.headers.forEach(headers::replaceValues)
162-
this.queryParams.forEach(queryParams::replaceValues)
151+
this.headers.asMap().forEach(headers::replaceValues)
152+
this.queryParams.asMap().forEach(queryParams::replaceValues)
163153

164154
return ClientOptions(
165155
httpClient!!,
@@ -170,16 +160,16 @@ private constructor(
170160
.maxRetries(maxRetries)
171161
.build()
172162
),
173-
jsonMapper ?: jsonMapper(),
163+
jsonMapper,
174164
clock,
175165
baseUrl,
176-
apiKey!!,
177-
organization,
178-
project,
179166
headers.toImmutable(),
180167
queryParams.toImmutable(),
181168
responseValidation,
182169
maxRetries,
170+
apiKey!!,
171+
organization,
172+
project,
183173
)
184174
}
185175
}

0 commit comments

Comments
 (0)