getObjects method

  1. @override
Future<List<ObjectResult>> getObjects(
  1. List<String> objectIds, {
  2. 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 data = await _client.executeData(
    _multiGetObjectsOperation,
    generated.Variables$Query$MultiGetObjects(
      keys: objectIds
          .map((id) => schema.Input$ObjectKey(address: id))
          .toList(),
    ),
  );
  final objects = data.multiGetObjects;
  return [
    for (var i = 0; i < objects.length; i++)
      if (objects[i] == null)
        ObjectError(
          'Object ${objectIds[i]} not found',
          code: 'notExists',
          reason: ObjectErrorReason.notFound,
          objectId: objectIds[i],
        )
      else
        ObjectSuccess(_mapObject(objects[i]!)),
  ];
}