getObjects method
Future<List<ObjectResult> >
getObjects(
- List<
String> objectIds, { - ObjectIncludeOptions? include,
override
Batched object reads: one entry per input id, in the same order.
Implementation
@override
Future<List<ObjectResult>> getObjects(
List<String> objectIds, {
ObjectIncludeOptions? include,
}) async {
if (objectIds.isEmpty) return const [];
final results = <ObjectResult>[];
for (var start = 0; start < objectIds.length; start += _objectBatchSize) {
final stop = start + _objectBatchSize;
final batch = objectIds.sublist(
start,
stop < objectIds.length ? stop : objectIds.length,
);
final data = await _client.executeData(
_multiGetObjectsOperation,
generated.Variables$Query$MultiGetObjects(
keys: batch.map((id) => schema.Input$ObjectKey(address: id)).toList(),
),
);
final objects = data.multiGetObjects;
for (var i = 0; i < objects.length; i++) {
results.add(
objects[i] == null
? ObjectError(
'Object ${batch[i]} not found',
code: 'notExists',
reason: ObjectErrorReason.notFound,
objectId: batch[i],
)
: ObjectSuccess(_mapObject(objects[i]!)),
);
}
}
return results;
}