#include #include #include #include RouteHead(RouteTxns, arr, argp) { ParseeHttpArg *args = argp; HashMap *request = NULL; HashMap *response = NULL; Array *events; size_t i; response = ASVerifyRequest(args); if (response) { goto end; } if (HttpRequestMethodGet(args->ctx) != HTTP_PUT) { HttpResponseStatus(args->ctx, HTTP_METHOD_NOT_ALLOWED); response = MatrixCreateError( "M_UNRECOGNIZED", "Path /transactions only accepts PUT as a valid method." ); goto end; } RequestJSON(); events = JsonValueAsArray(HashMapGet(request, "events")); for (i = 0; i < ArraySize(events); i++) { HashMap *event = JsonValueAsObject(ArrayGet(events, i)); ParseeEventHandler(args->data, event); } /* TODO: Store TXN ID somewhere so that we can commit * "Epic Matrix Idempotency" */ response = HashMapCreate(); end: (void) arr; JsonFree(request); return response; }