just use seperate transaction handlers

This commit is contained in:
2026-02-16 01:04:52 -05:00
parent ffd3eda63c
commit cd4ee1cbd7
4 changed files with 1334 additions and 5 deletions

View File

@@ -106,6 +106,10 @@ handle_dynamodb_request :: proc(ctx: rawptr, request: ^HTTP_Request, request_all
handle_batch_write_item(engine, request, &response)
case .BatchGetItem:
handle_batch_get_item(engine, request, &response)
case .TransactWriteItems:
handle_transact_write_items(engine, request, &response)
case .TransactGetItems:
handle_transact_get_items(engine, request, &response)
case .Unknown:
return make_error_response(&response, .ValidationException, "Unknown operation")
case:
@@ -657,7 +661,9 @@ handle_update_item :: proc(engine: ^dynamodb.Storage_Engine, request: ^HTTP_Requ
case "UPDATED_NEW":
if new_val, has := new_item.?; has {
item_json := dynamodb.serialize_item(new_val)
filtered := filter_updated_attributes(new_val, &plan)
defer dynamodb.item_destroy(&filtered)
item_json := dynamodb.serialize_item(filtered)
resp := fmt.aprintf(`{"Attributes":%s}`, item_json)
response_set_body(response, transmute([]byte)resp)
} else {
@@ -666,7 +672,9 @@ handle_update_item :: proc(engine: ^dynamodb.Storage_Engine, request: ^HTTP_Requ
case "UPDATED_OLD":
if old, has := old_item.?; has {
item_json := dynamodb.serialize_item(old)
filtered := filter_updated_attributes(old, &plan)
defer dynamodb.item_destroy(&filtered)
item_json := dynamodb.serialize_item(filtered)
resp := fmt.aprintf(`{"Attributes":%s}`, item_json)
response_set_body(response, transmute([]byte)resp)
} else {