put method

Future<OperationOutput> put({
  1. required Map<String, dynamic> item,
  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,
})

Creates a new item, or replaces an old item with a new item by delegating to AWS.DynamoDB.putItem().

Implementation

Future<OperationOutput> put({
  required Map<String, dynamic> item,
  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 pr = await dynamoDB.putItem(
    item: item.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: pr.attributes?.toJson() ?? {},
    consumedCapacity: pr.consumedCapacity,
    itemCollectionMetrics: ItemCollectionMetricsDC(
      itemCollectionKey:
          pr.itemCollectionMetrics?.itemCollectionKey?.toJson() ?? {},
      sizeEstimateRangeGB: pr.itemCollectionMetrics?.sizeEstimateRangeGB,
    ),
  );
}