@@ -174,17 +174,40 @@ internal class EndpointIndexingImpl(
174
174
}
175
175
}
176
176
177
- override suspend fun getObjects (
177
+ private suspend fun getObjectsInternal (
178
178
objectIDs : List <ObjectID >,
179
179
attributesToRetrieve : List <Attribute >? ,
180
180
requestOptions : RequestOptions ? ,
181
- ): ResponseObjects {
181
+ ): ResponseObjects < JsonObject ?> {
182
182
val requests = objectIDs.map { RequestObjects (indexName, it, attributesToRetrieve) }
183
183
val body = JsonNoDefaults .encodeToString(RequestRequestObjects .serializer(), RequestRequestObjects (requests))
184
184
185
185
return transport.request(HttpMethod .Post , CallType .Read , " ${Route .IndexesV1 } /*/objects" , requestOptions, body)
186
186
}
187
187
188
+ override suspend fun getObjects (
189
+ objectIDs : List <ObjectID >,
190
+ attributesToRetrieve : List <Attribute >? ,
191
+ requestOptions : RequestOptions ? ,
192
+ ): ResponseObjects <JsonObject ?> {
193
+ return getObjectsInternal(objectIDs, attributesToRetrieve, requestOptions)
194
+ }
195
+
196
+ override suspend fun <T : Indexable > getObjects (
197
+ serializer : KSerializer <T >,
198
+ objectIDs : List <ObjectID >,
199
+ attributesToRetrieve : List <Attribute >? ,
200
+ requestOptions : RequestOptions ? ,
201
+ ): ResponseObjects <T ?> {
202
+ return getObjectsInternal(objectIDs, attributesToRetrieve, requestOptions).run {
203
+ ResponseObjects (results.map { optionalJsonObject ->
204
+ optionalJsonObject?.let { jsonObject ->
205
+ JsonNonStrict .decodeFromJsonElement(serializer, jsonObject)
206
+ }
207
+ }, messageOrNull)
208
+ }
209
+ }
210
+
188
211
override suspend fun partialUpdateObject (
189
212
objectID : ObjectID ,
190
213
partial : Partial ,
0 commit comments