batchWrite method
Future<BatchWriteOutput>
batchWrite({
- required Map<
String, List< requestItems,Write> > - ReturnConsumedCapacity? returnConsumedCapacity,
- ReturnItemCollectionMetrics? returnItemCollectionMetrics,
Puts or deletes multiple items in one or more tables by delegating to DynamoDB.batchWriteItem().
Implementation
Future<BatchWriteOutput> batchWrite({
required Map<String, List<Write>> requestItems,
ReturnConsumedCapacity? returnConsumedCapacity,
ReturnItemCollectionMetrics? returnItemCollectionMetrics,
}) async {
final ri = requestItems.map(
(k, v) => MapEntry(
k,
v
.map(
(e) => WriteRequest(
deleteRequest: e.deleteKey?.let((d) => DeleteRequest(
key: d.fromJsonToAttributeValue(),
)),
putRequest: e.putItem?.let((p) => PutRequest(
item: p.fromJsonToAttributeValue(),
)),
),
)
.toList(),
),
);
final wr = await dynamoDB.batchWriteItem(
requestItems: ri,
returnConsumedCapacity: returnConsumedCapacity,
returnItemCollectionMetrics: returnItemCollectionMetrics,
);
return BatchWriteOutput(
consumedCapacity: wr.consumedCapacity ?? [],
unprocessedItems: wr.unprocessedItems?.map((k, v) => MapEntry(
k,
v
.map((e) => Write(
deleteKey:
e.deleteRequest?.let((d) => d.key.toJson()),
putItem: e.putRequest?.let((p) => p.item.toJson()),
))
.toList(),
)) ??
{},
itemCollectionMetrics: wr.itemCollectionMetrics?.map((k, v) => MapEntry(
k,
v
.map((e) => ItemCollectionMetricsDC(
itemCollectionKey: e.itemCollectionKey.toJson() ?? {},
sizeEstimateRangeGB: e.sizeEstimateRangeGB,
))
.toList(),
)) ??
{},
);
}