delete method
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,
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,
),
);
}