scan method

Future<QueryOutputDC> scan({
  1. required String tableName,
  2. List<String>? attributesToGet,
  3. ConditionalOperator? conditionalOperator,
  4. bool? consistentRead,
  5. Map<String, dynamic>? exclusiveStartKey,
  6. Map<String, String>? expressionAttributeNames,
  7. Map<String, dynamic>? expressionAttributeValues,
  8. String? filterExpression,
  9. String? indexName,
  10. int? limit,
  11. String? projectionExpression,
  12. ReturnConsumedCapacity? returnConsumedCapacity,
  13. Map<String, ConditionDC>? scanFilter,
  14. int? segment,
  15. Select? select,
  16. int? totalSegments,
})

Returns one or more items and item attributes by accessing every item in a table or a secondary index.

Implementation

Future<QueryOutputDC> scan({
  required String tableName,
  List<String>? attributesToGet,
  ConditionalOperator? conditionalOperator,
  bool? consistentRead,
  Map<String, dynamic>? exclusiveStartKey,
  Map<String, String>? expressionAttributeNames,
  Map<String, dynamic>? expressionAttributeValues,
  String? filterExpression,
  String? indexName,
  int? limit,
  String? projectionExpression,
  ReturnConsumedCapacity? returnConsumedCapacity,
  Map<String, ConditionDC>? scanFilter,
  int? segment,
  Select? select,
  int? totalSegments,
}) async {
  final sr = await dynamoDB.scan(
    tableName: tableName,
    attributesToGet: attributesToGet,
    conditionalOperator: conditionalOperator,
    consistentRead: consistentRead,
    exclusiveStartKey: exclusiveStartKey?.fromJsonToAttributeValue(),
    expressionAttributeNames: expressionAttributeNames,
    expressionAttributeValues:
        expressionAttributeValues?.fromJsonToAttributeValue(),
    filterExpression: filterExpression,
    indexName: indexName,
    limit: limit,
    projectionExpression: projectionExpression,
    returnConsumedCapacity: returnConsumedCapacity,
    scanFilter: scanFilter?.map((key, value) => MapEntry(
        key,
        Condition(
          comparisonOperator: value.comparisonOperator,
          attributeValueList:
              value.attributeValueList.map(toAttributeValue).toList(),
        ))),
    segment: segment,
    select: select,
    totalSegments: totalSegments,
  );

  return QueryOutputDC(
    consumedCapacity: sr.consumedCapacity,
    count: sr.count ?? 0,
    scannedCount: sr.scannedCount ?? 0,
    items: sr.items?.map((e) => e.toJson()).toList() ?? [],
    lastEvaluatedKey: sr.lastEvaluatedKey?.toJson() ?? {},
  );
}