function apiAbort(obj) { writeOutput(serializeJSON(obj)); abort; } function readJsonBody() { raw = toString(getHttpRequestData().content); if (isNull(raw) || len(trim(raw)) EQ 0) { apiAbort({ OK = false, ERROR = "missing_body" }); } try { parsed = deserializeJSON(raw); } catch (any e) { apiAbort({ OK = false, ERROR = "bad_json", MESSAGE = "Invalid JSON body" }); } if (!isStruct(parsed)) { apiAbort({ OK = false, ERROR = "bad_json", MESSAGE = "JSON must be an object" }); } return parsed; } data = readJsonBody(); if (!structKeyExists(data, "BusinessID") || !isNumeric(data.BusinessID) || int(data.BusinessID) LTE 0) { apiAbort({ OK = false, ERROR = "missing_BusinessID" }); } BusinessID = int(data.BusinessID); SessionEnabled = structKeyExists(data, "SessionEnabled") && isNumeric(data.SessionEnabled) ? int(data.SessionEnabled) : 0; SessionLockMinutes = structKeyExists(data, "SessionLockMinutes") && isNumeric(data.SessionLockMinutes) ? int(data.SessionLockMinutes) : 30; SessionPaymentStrategy = structKeyExists(data, "SessionPaymentStrategy") ? left(trim(data.SessionPaymentStrategy), 1) : "A"; TabMinAuthAmount = structKeyExists(data, "TabMinAuthAmount") && isNumeric(data.TabMinAuthAmount) ? val(data.TabMinAuthAmount) : 50.00; TabDefaultAuthAmount = structKeyExists(data, "TabDefaultAuthAmount") && isNumeric(data.TabDefaultAuthAmount) ? val(data.TabDefaultAuthAmount) : 150.00; TabMaxAuthAmount = structKeyExists(data, "TabMaxAuthAmount") && isNumeric(data.TabMaxAuthAmount) ? val(data.TabMaxAuthAmount) : 1000.00; TabAutoIncreaseThreshold = structKeyExists(data, "TabAutoIncreaseThreshold") && isNumeric(data.TabAutoIncreaseThreshold) ? val(data.TabAutoIncreaseThreshold) : 0.80; TabMaxMembers = structKeyExists(data, "TabMaxMembers") && isNumeric(data.TabMaxMembers) ? int(data.TabMaxMembers) : 10; TabApprovalRequired = structKeyExists(data, "TabApprovalRequired") && isNumeric(data.TabApprovalRequired) ? int(data.TabApprovalRequired) : 1; // Validate if (SessionLockMinutes < 5) SessionLockMinutes = 5; if (SessionLockMinutes > 480) SessionLockMinutes = 480; if (SessionPaymentStrategy != "A" && SessionPaymentStrategy != "P") SessionPaymentStrategy = "A"; if (TabMinAuthAmount < 10) TabMinAuthAmount = 10; if (TabMinAuthAmount > 10000) TabMinAuthAmount = 10000; if (TabDefaultAuthAmount < TabMinAuthAmount) TabDefaultAuthAmount = TabMinAuthAmount; if (TabDefaultAuthAmount > TabMaxAuthAmount) TabDefaultAuthAmount = TabMaxAuthAmount; if (TabMaxAuthAmount < TabMinAuthAmount) TabMaxAuthAmount = TabMinAuthAmount; if (TabMaxAuthAmount > 10000) TabMaxAuthAmount = 10000; if (TabAutoIncreaseThreshold < 0.5) TabAutoIncreaseThreshold = 0.5; if (TabAutoIncreaseThreshold > 1.0) TabAutoIncreaseThreshold = 1.0; if (TabMaxMembers < 1) TabMaxMembers = 1; if (TabMaxMembers > 50) TabMaxMembers = 50; UPDATE Businesses SET SessionEnabled = , SessionLockMinutes = , SessionPaymentStrategy = , TabMinAuthAmount = , TabDefaultAuthAmount = , TabMaxAuthAmount = , TabAutoIncreaseThreshold = , TabMaxMembers = , TabApprovalRequired = WHERE ID = #serializeJSON({ "OK" = true, "ERROR" = "", "BusinessID" = BusinessID, "SessionEnabled" = SessionEnabled, "SessionLockMinutes" = SessionLockMinutes, "SessionPaymentStrategy" = SessionPaymentStrategy, "TabMinAuthAmount" = TabMinAuthAmount, "TabDefaultAuthAmount" = TabDefaultAuthAmount, "TabMaxAuthAmount" = TabMaxAuthAmount, "TabAutoIncreaseThreshold" = TabAutoIncreaseThreshold, "TabMaxMembers" = TabMaxMembers, "TabApprovalRequired" = TabApprovalRequired })# #serializeJSON({ "OK" = false, "ERROR" = "server_error", "MESSAGE" = cfcatch.message })#