@@ -28,6 +28,8 @@ import uniffi.xmtpv3.FfiPagingInfo
28
28
import uniffi.xmtpv3.FfiPublishRequest
29
29
import uniffi.xmtpv3.FfiSortDirection
30
30
import uniffi.xmtpv3.FfiV2ApiClient
31
+ import uniffi.xmtpv3.FfiV2BatchQueryRequest
32
+ import uniffi.xmtpv3.FfiV2BatchQueryResponse
31
33
import uniffi.xmtpv3.FfiV2QueryRequest
32
34
import uniffi.xmtpv3.FfiV2QueryResponse
33
35
import java.io.Closeable
@@ -57,15 +59,6 @@ data class GRPCApiClient(
57
59
) :
58
60
ApiClient , Closeable {
59
61
companion object {
60
- val AUTHORIZATION_HEADER_KEY : Metadata .Key <String > =
61
- Metadata .Key .of(" authorization" , Metadata .ASCII_STRING_MARSHALLER )
62
-
63
- val CLIENT_VERSION_HEADER_KEY : Metadata .Key <String > =
64
- Metadata .Key .of(" X-Client-Version" , Metadata .ASCII_STRING_MARSHALLER )
65
-
66
- val APP_VERSION_HEADER_KEY : Metadata .Key <String > =
67
- Metadata .Key .of(" X-App-Version" , Metadata .ASCII_STRING_MARSHALLER )
68
-
69
62
fun makeQueryRequest (
70
63
topic : String ,
71
64
pagination : Pagination ? = null,
@@ -144,17 +137,8 @@ data class GRPCApiClient(
144
137
override suspend fun batchQuery (
145
138
requests : List <QueryRequest >,
146
139
): BatchQueryResponse {
147
- val batchRequest = BatchQueryRequest .newBuilder().addAllRequests(requests).build()
148
- val headers = Metadata ()
149
-
150
- authToken?.let { token ->
151
- headers.put(AUTHORIZATION_HEADER_KEY , " Bearer $token " )
152
- }
153
- headers.put(CLIENT_VERSION_HEADER_KEY , Constants .VERSION )
154
- if (appVersion != null ) {
155
- headers.put(APP_VERSION_HEADER_KEY , appVersion)
156
- }
157
- return rustV2Client.batchQuery(batchRequest, headers = headers)
140
+ val batchRequest = requests.map { queryRequestToFFi(it) }
141
+ return batchQueryResponseFromFFi(rustV2Client.batchQuery(FfiV2BatchQueryRequest (requests = batchRequest)))
158
142
}
159
143
160
144
override suspend fun publish (envelopes : List <Envelope >) {
@@ -165,13 +149,6 @@ data class GRPCApiClient(
165
149
}
166
150
167
151
override suspend fun subscribe (request : Flow <SubscribeRequest >): Flow <Envelope > {
168
- val headers = Metadata ()
169
-
170
- headers.put(CLIENT_VERSION_HEADER_KEY , Constants .VERSION )
171
- if (appVersion != null ) {
172
- headers.put(APP_VERSION_HEADER_KEY , appVersion)
173
- }
174
-
175
152
return rustV2Client.subscribe2(request, headers)
176
153
}
177
154
@@ -189,7 +166,7 @@ data class GRPCApiClient(
189
166
190
167
private fun envelopeFromFFi (envelope : FfiEnvelope ): Envelope {
191
168
return Envelope .newBuilder().also {
192
- it.contentTopic = envelope.contentTopic,
169
+ it.contentTopic = envelope.contentTopic
193
170
it.timestampNs = envelope.timestampNs.toLong()
194
171
it.message = envelope.message.toByteString()
195
172
}.build()
@@ -213,6 +190,12 @@ data class GRPCApiClient(
213
190
}.build()
214
191
}
215
192
193
+ private fun batchQueryResponseFromFFi (response : FfiV2BatchQueryResponse ): BatchQueryResponse {
194
+ return BatchQueryResponse .newBuilder().also { queryResponse ->
195
+ queryResponse.addAllResponses(response.responses.map { queryResponseFromFFi(it) })
196
+ }.build()
197
+ }
198
+
216
199
private fun pagingInfoFromFFi (info : FfiPagingInfo ): PagingInfo {
217
200
return PagingInfo .newBuilder().also {
218
201
it.limit = info.limit.toInt()
0 commit comments