transactWrite method

Future<void> transactWrite({
  1. required List<TransactWrite> transactItems,
  2. String? clientRequestToken,
  3. ReturnConsumedCapacity? returnConsumedCapacity,
  4. ReturnItemCollectionMetrics? returnItemCollectionMetrics,
})

Synchronous write operation that groups up to 10 action requests

Implementation

Future<void> transactWrite({
  required List<TransactWrite> transactItems,
  String? clientRequestToken,
  ReturnConsumedCapacity? returnConsumedCapacity,
  ReturnItemCollectionMetrics? returnItemCollectionMetrics,
}) async {
  await dynamoDB.transactWriteItems(
    transactItems: transactItems
        .map((e) => TransactWriteItem(
              conditionCheck: e.conditionCheck?.let((e) => ConditionCheck(
                  tableName: e.tableName,
                  key: e.value.fromJsonToAttributeValue(),
                  conditionExpression: e.expression,
                  expressionAttributeNames: e.expressionAttributeNames,
                  expressionAttributeValues:
                      e.expressionAttributeValues.fromJsonToAttributeValue(),
                  returnValuesOnConditionCheckFailure:
                      e.returnValuesOnConditionCheckFailure)),
              delete: e.delete?.let((e) => Delete(
                  tableName: e.tableName,
                  key: e.value.fromJsonToAttributeValue(),
                  conditionExpression: e.expression,
                  expressionAttributeNames: e.expressionAttributeNames,
                  expressionAttributeValues:
                      e.expressionAttributeValues.fromJsonToAttributeValue(),
                  returnValuesOnConditionCheckFailure:
                      e.returnValuesOnConditionCheckFailure)),
              put: e.put?.let((e) => Put(
                  tableName: e.tableName,
                  item: e.value.fromJsonToAttributeValue(),
                  conditionExpression: e.expression,
                  expressionAttributeNames: e.expressionAttributeNames,
                  expressionAttributeValues:
                      e.expressionAttributeValues.fromJsonToAttributeValue(),
                  returnValuesOnConditionCheckFailure:
                      e.returnValuesOnConditionCheckFailure)),
              update: e.update?.let((e) => Update(
                  tableName: e.tableName,
                  key: e.value.fromJsonToAttributeValue(),
                  conditionExpression: e.expression,
                  updateExpression: e.updateExpression,
                  expressionAttributeNames: e.expressionAttributeNames,
                  expressionAttributeValues:
                      e.expressionAttributeValues.fromJsonToAttributeValue(),
                  returnValuesOnConditionCheckFailure:
                      e.returnValuesOnConditionCheckFailure)),
            ))
        .toList(),
    clientRequestToken: clientRequestToken,
    returnConsumedCapacity: returnConsumedCapacity,
    returnItemCollectionMetrics: returnItemCollectionMetrics,
  );
}