delete method

Future<OperationOutput> delete({
  1. required Map<String, dynamic> key,
  2. required String tableName,
  3. String? conditionExpression,
  4. ConditionalOperator? conditionalOperator,
  5. Map<String, ExpectedAttributeValueDC>? expected,
  6. Map<String, String>? expressionAttributeNames,
  7. Map<String, dynamic>? expressionAttributeValues,
  8. ReturnConsumedCapacity? returnConsumedCapacity,
  9. ReturnItemCollectionMetrics? returnItemCollectionMetrics,
  10. ReturnValue? returnValues,
})

Deletes a single item in a table by primary key by delegating to DynamoDB.deleteItem().

Implementation

Future<OperationOutput> delete({
  required Map<String, dynamic> key,
  required String tableName,
  String? conditionExpression,
  ConditionalOperator? conditionalOperator,
  Map<String, ExpectedAttributeValueDC>? expected,
  Map<String, String>? expressionAttributeNames,
  Map<String, dynamic>? expressionAttributeValues,
  ReturnConsumedCapacity? returnConsumedCapacity,
  ReturnItemCollectionMetrics? returnItemCollectionMetrics,
  ReturnValue? returnValues,
}) async {
  final dr = await dynamoDB.deleteItem(
    key: key.fromJsonToAttributeValue(),
    tableName: tableName,
    conditionExpression: conditionExpression,
    conditionalOperator: conditionalOperator,
    expected: expected?.map((key, value) => MapEntry(
        key,
        ExpectedAttributeValue(
          attributeValueList:
              value.attributeValueList.map(toAttributeValue).toList(),
          comparisonOperator: value.comparisonOperator,
          exists: value.exists,
          value: toAttributeValue(value.value),
        ))),
    expressionAttributeNames: expressionAttributeNames,
    expressionAttributeValues:
        expressionAttributeValues?.fromJsonToAttributeValue(),
    returnConsumedCapacity: returnConsumedCapacity,
    returnItemCollectionMetrics: returnItemCollectionMetrics,
    returnValues: returnValues,
  );

  return OperationOutput(
    attributes: dr.attributes.toJson() ?? {},
    consumedCapacity: dr.consumedCapacity,
    itemCollectionMetrics: ItemCollectionMetricsDC(
      itemCollectionKey:
          dr.itemCollectionMetrics?.itemCollectionKey?.toJson() ?? {},
      sizeEstimateRangeGB: dr.itemCollectionMetrics?.sizeEstimateRangeGB,
    ),
  );
}