@@ -214,12 +214,9 @@ def keys(self, keys):
214
214
215
215
def batch_write_item_request (self , batch_write_item_request ):
216
216
if "RequestItems" in batch_write_item_request :
217
- batch_write_item_request ["RequestItems" ] = self .batch_write_item_request_items (batch_write_item_request ["RequestItems" ])
217
+ batch_write_item_request ["RequestItems" ] = self .batch_write_item_items (batch_write_item_request ["RequestItems" ])
218
218
return batch_write_item_request
219
219
220
- def batch_write_item_request_items (self , request_items ):
221
- return self .batch_write_item_items (request_items )
222
-
223
220
def batch_write_item_items (self , items ):
224
221
items_out = {}
225
222
for table_name , table_value in items .items ():
@@ -252,4 +249,57 @@ def batch_write_item_item_collection_metrics(self, item_collection_metrics):
252
249
item_collection_metrics_out [table_name ] = table_value
253
250
return item_collection_metrics_out
254
251
255
- def
252
+ def transact_write_items_request (self , transact_write_items_request ):
253
+ if "TransactItems" in transact_write_items_request :
254
+ transact_write_items_request ["TransactItems" ] = self .transact_write_items (transact_write_items_request ["TransactItems" ])
255
+ return transact_write_items_request
256
+
257
+ def transact_write_items (self , transact_items ):
258
+ output_transact_items = []
259
+ for transact_item in transact_items :
260
+ if "Put" in transact_item :
261
+ transact_item ["Put" ]["Item" ] = self .item (transact_item ["Put" ]["Item" ])
262
+ output_transact_items .append (transact_item )
263
+ elif "Delete" in transact_item :
264
+ transact_item ["Delete" ]["Key" ] = self .item (transact_item ["Delete" ]["Key" ])
265
+ output_transact_items .append (transact_item )
266
+ elif "ConditionCheck" in transact_item :
267
+ transact_item ["ConditionCheck" ]["Key" ] = self .item (transact_item ["ConditionCheck" ]["Key" ])
268
+ output_transact_items .append (transact_item )
269
+ elif "Update" in transact_item :
270
+ # Update requests are not supported yet.
271
+ raise NotImplementedError ('"update_item" is not yet implemented' )
272
+ else :
273
+ raise ValueError (f"Unknown transact_write_items method key: { transact_item } " )
274
+ return output_transact_items
275
+
276
+ def transact_write_items_response (self , transact_write_items_response ):
277
+ return transact_write_items_response
278
+
279
+ def transact_get_items_request (self , transact_get_items_request ):
280
+ if "TransactItems" in transact_get_items_request :
281
+ transact_get_items_request ["TransactItems" ] = self .transact_get_items (transact_get_items_request ["TransactItems" ])
282
+ return transact_get_items_request
283
+
284
+ def transact_get_items (self , transact_items ):
285
+ output_transact_items = []
286
+ for transact_item in transact_items :
287
+ if "Get" in transact_item :
288
+ transact_item ["Get" ]["Key" ] = self .item (transact_item ["Get" ]["Key" ])
289
+ output_transact_items .append (transact_item )
290
+ else :
291
+ raise ValueError (f"Unknown transact_get_items method key: { transact_item } " )
292
+ return output_transact_items
293
+
294
+ def transact_get_items_response (self , transact_get_items_response ):
295
+ if "Responses" in transact_get_items_response :
296
+ transact_get_items_response ["Responses" ] = self .transact_get_items_responses (transact_get_items_response ["Responses" ])
297
+ return transact_get_items_response
298
+
299
+ def transact_get_items_responses (self , responses ):
300
+ responses_out = []
301
+ for response in responses :
302
+ if "Item" in response :
303
+ response ["Item" ] = self .item (response ["Item" ])
304
+ responses_out .append (response )
305
+ return responses_out
0 commit comments