@@ -10,6 +10,8 @@ import org.xmtp.android.library.messages.Pagination
10
10
import org.xmtp.android.library.messages.Topic
11
11
import org.xmtp.proto.message.api.v1.MessageApiGrpcKt
12
12
import org.xmtp.proto.message.api.v1.MessageApiOuterClass
13
+ import org.xmtp.proto.message.api.v1.MessageApiOuterClass.BatchQueryRequest
14
+ import org.xmtp.proto.message.api.v1.MessageApiOuterClass.BatchQueryResponse
13
15
import org.xmtp.proto.message.api.v1.MessageApiOuterClass.Cursor
14
16
import org.xmtp.proto.message.api.v1.MessageApiOuterClass.Envelope
15
17
import org.xmtp.proto.message.api.v1.MessageApiOuterClass.PublishRequest
@@ -29,6 +31,7 @@ interface ApiClient {
29
31
): QueryResponse
30
32
31
33
suspend fun queryTopic (topic : Topic , pagination : Pagination ? = null): QueryResponse
34
+ suspend fun batchQuery (requests : List <QueryRequest >): BatchQueryResponse
32
35
suspend fun envelopes (topic : String , pagination : Pagination ? = null): List <Envelope >
33
36
suspend fun publish (envelopes : List <Envelope >): PublishResponse
34
37
suspend fun subscribe (topics : List <String >): Flow <Envelope >
@@ -126,6 +129,22 @@ data class GRPCApiClient(override val environment: XMTPEnvironment, val secure:
126
129
return query(topic.description, pagination)
127
130
}
128
131
132
+ override suspend fun batchQuery (
133
+ requests : List <QueryRequest >,
134
+ ): BatchQueryResponse {
135
+ val batchRequest = BatchQueryRequest .newBuilder().addAllRequests(requests).build()
136
+ val headers = Metadata ()
137
+
138
+ authToken?.let { token ->
139
+ headers.put(AUTHORIZATION_HEADER_KEY , " Bearer $token " )
140
+ }
141
+ headers.put(CLIENT_VERSION_HEADER_KEY , Constants .VERSION )
142
+ if (appVersion != null ) {
143
+ headers.put(APP_VERSION_HEADER_KEY , appVersion)
144
+ }
145
+ return client.batchQuery(batchRequest, headers = headers)
146
+ }
147
+
129
148
override suspend fun publish (envelopes : List <Envelope >): PublishResponse {
130
149
val request = PublishRequest .newBuilder().addAllEnvelopes(envelopes).build()
131
150
val headers = Metadata ()
0 commit comments