update method
Future<OperationOutput>
update({
- required Map<
String, dynamic> key, - required String tableName,
- Map<
String, UpdateDC> ? attributeUpdates, - String? conditionExpression,
- ConditionalOperator? conditionalOperator,
- Map<
String, ExpectedAttributeValueDC> ? expected, - Map<
String, String> ? expressionAttributeNames, - Map<
String, dynamic> ? expressionAttributeValues, - ReturnConsumedCapacity? returnConsumedCapacity,
- ReturnItemCollectionMetrics? returnItemCollectionMetrics,
- ReturnValue? returnValues,
- String? updateExpression,
Edits an existing item's attributes, or adds a new item to the table if it does not already exist by delegating to AWS.DynamoDB.updateItem().
Implementation
Future<OperationOutput> update({
required Map<String, dynamic> key,
required String tableName,
Map<String, UpdateDC>? attributeUpdates,
String? conditionExpression,
ConditionalOperator? conditionalOperator,
Map<String, ExpectedAttributeValueDC>? expected,
Map<String, String>? expressionAttributeNames,
Map<String, dynamic>? expressionAttributeValues,
ReturnConsumedCapacity? returnConsumedCapacity,
ReturnItemCollectionMetrics? returnItemCollectionMetrics,
ReturnValue? returnValues,
String? updateExpression,
}) async {
final ur = await dynamoDB.updateItem(
key: key.fromJsonToAttributeValue(),
tableName: tableName,
attributeUpdates: attributeUpdates?.map((key, value) => MapEntry(
key,
AttributeValueUpdate(
action: value.action, value: toAttributeValue(value.value)))),
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,
updateExpression: updateExpression,
);
return OperationOutput(
attributes: ur.attributes?.toJson() ?? {},
consumedCapacity: ur.consumedCapacity,
itemCollectionMetrics: ItemCollectionMetricsDC(
itemCollectionKey:
ur.itemCollectionMetrics?.itemCollectionKey?.toJson() ?? {},
sizeEstimateRangeGB: ur.itemCollectionMetrics?.sizeEstimateRangeGB,
),
);
}