function apiAbort(obj) { writeOutput(serializeJSON(obj)); abort; } function readJsonBody() { raw = toString(getHttpRequestData().content); if (isNull(raw) || len(trim(raw)) EQ 0) return {}; try { parsed = deserializeJSON(raw); } catch(any e) { apiAbort({ OK=false, ERROR="bad_json", MESSAGE="Invalid JSON body" }); } if (!isStruct(parsed)) return {}; return parsed; } data = readJsonBody(); httpHeaders = getHttpRequestData().headers; // Get BusinessID from: session > body > X-Business-ID header bizId = 0; if (structKeyExists(request, "BusinessID") && isNumeric(request.BusinessID) && request.BusinessID GT 0) { bizId = int(request.BusinessID); } if (bizId LTE 0 && structKeyExists(data, "BusinessID") && isNumeric(data.BusinessID) && data.BusinessID GT 0) { bizId = int(data.BusinessID); } if (bizId LTE 0 && structKeyExists(httpHeaders, "X-Business-ID") && isNumeric(httpHeaders["X-Business-ID"]) && httpHeaders["X-Business-ID"] GT 0) { bizId = int(httpHeaders["X-Business-ID"]); } if (bizId LTE 0) { apiAbort({ OK=false, ERROR="no_business_selected" }); } if (!structKeyExists(data, "ServicePointID") || !isNumeric(data.ServicePointID) || int(data.ServicePointID) LTE 0) { apiAbort({ OK=false, ERROR="missing_servicepoint_id", MESSAGE="ServicePointID is required" }); } servicePointId = int(data.ServicePointID); UPDATE ServicePoints SET ServicePointIsActive = 0 WHERE ServicePointID = AND ServicePointBusinessID = SELECT ServicePointID, ServicePointIsActive FROM ServicePoints WHERE ServicePointID = AND ServicePointBusinessID = LIMIT 1 #serializeJSON({ OK=false, ERROR="not_found" })# #serializeJSON({ OK=true, ERROR="", ServicePointID=servicePointId })#