just use seperate transaction handlers
This commit is contained in:
12
main.odin
12
main.odin
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user