This repository has been archived on 2026-03-21. You can view files and clone it, but cannot push or open issues or pull requests.
payfrit-biz/api/businesses/updateTabs.cfm
John Mizerek d7632c5d35 Menu builder and portal updates
- Menu builder UI improvements
- Portal CSS and JS updates
- Station assignment updates
- Add business tabs update endpoint

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:08:54 -08:00

71 lines
2.4 KiB
Text

<cfsetting showdebugoutput="false">
<cfsetting enablecfoutputonly="true">
<cfcontent type="application/json; charset=utf-8" reset="true">
<cfheader name="Cache-Control" value="no-store">
<cfscript>
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";
// Validate
if (SessionLockMinutes < 5) SessionLockMinutes = 5;
if (SessionLockMinutes > 480) SessionLockMinutes = 480;
if (SessionPaymentStrategy != "A" && SessionPaymentStrategy != "P") SessionPaymentStrategy = "A";
</cfscript>
<cftry>
<cfquery datasource="payfrit">
UPDATE Businesses
SET SessionEnabled = <cfqueryparam cfsqltype="cf_sql_tinyint" value="#SessionEnabled#">,
SessionLockMinutes = <cfqueryparam cfsqltype="cf_sql_integer" value="#SessionLockMinutes#">,
SessionPaymentStrategy = <cfqueryparam cfsqltype="cf_sql_char" value="#SessionPaymentStrategy#">
WHERE ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#BusinessID#">
</cfquery>
<cfoutput>#serializeJSON({
"OK" = true,
"ERROR" = "",
"BusinessID" = BusinessID,
"SessionEnabled" = SessionEnabled,
"SessionLockMinutes" = SessionLockMinutes,
"SessionPaymentStrategy" = SessionPaymentStrategy
})#</cfoutput>
<cfcatch>
<cfoutput>#serializeJSON({
"OK" = false,
"ERROR" = "server_error",
"MESSAGE" = cfcatch.message
})#</cfoutput>
</cfcatch>
</cftry>