response = { "OK": false }; try { requestBody = toString(getHttpRequestData().content); requestData = {}; if (len(requestBody)) { requestData = deserializeJSON(requestBody); } confirmDelete = requestData.confirm ?: ""; if (confirmDelete != "NUKE_ORDERS") { throw("Must pass confirm: 'NUKE_ORDERS' to proceed"); } // Get counts before deletion qOrderLineItems = queryExecute("SELECT COUNT(*) as cnt FROM OrderLineItems", {}, { datasource: "payfrit" }); qOrders = queryExecute("SELECT COUNT(*) as cnt FROM Orders", {}, { datasource: "payfrit" }); qAddresses = queryExecute("SELECT COUNT(*) as cnt FROM Addresses", {}, { datasource: "payfrit" }); qTasks = queryExecute("SELECT COUNT(*) as cnt FROM Tasks", {}, { datasource: "payfrit" }); // Delete in correct order (foreign key constraints) queryExecute("DELETE FROM Tasks", {}, { datasource: "payfrit" }); queryExecute("DELETE FROM OrderLineItems", {}, { datasource: "payfrit" }); queryExecute("DELETE FROM Orders", {}, { datasource: "payfrit" }); queryExecute("DELETE FROM Addresses", {}, { datasource: "payfrit" }); response = { "OK": true, "deleted": { "tasks": qTasks.cnt, "lineItems": qOrderLineItems.cnt, "orders": qOrders.cnt, "addresses": qAddresses.cnt } }; } catch (any e) { response = { "OK": false, "ERROR": e.message, "DETAIL": e.detail ?: "" }; } writeOutput(serializeJSON(response));