From 0d3c381ed64529ff35dc09f97658b712aaa15202 Mon Sep 17 00:00:00 2001 From: John Mizerek Date: Wed, 28 Jan 2026 00:38:58 -0800 Subject: [PATCH] Add about.cfm API endpoint for mobile app About screennAdds server-side content for About Payfrit screen allowing content updates without releasing new app versions.nCo-Authored-By: Claude Opus 4.5 --- api/Application.cfm | 3 ++ api/app/about.cfm | 67 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 api/app/about.cfm diff --git a/api/Application.cfm b/api/Application.cfm index 1a7dd99..dce65dc 100644 --- a/api/Application.cfm +++ b/api/Application.cfm @@ -259,6 +259,9 @@ if (len(request._api_path)) { if (findNoCase("/api/ratings/setup.cfm", request._api_path)) request._api_isPublic = true; if (findNoCase("/api/ratings/submit.cfm", request._api_path)) request._api_isPublic = true; + // App info endpoints (public, no auth needed) + if (findNoCase("/api/app/about.cfm", request._api_path)) request._api_isPublic = true; + // Stripe endpoints if (findNoCase("/api/stripe/onboard.cfm", request._api_path)) request._api_isPublic = true; if (findNoCase("/api/stripe/status.cfm", request._api_path)) request._api_isPublic = true; diff --git a/api/app/about.cfm b/api/app/about.cfm new file mode 100644 index 0000000..402ecb9 --- /dev/null +++ b/api/app/about.cfm @@ -0,0 +1,67 @@ + + + + + + +try { + // Features displayed on the About screen + // icon: Flutter icon name (see AboutFeature._iconMap in about_info.dart) + features = [ + { + "ICON": "qr_code_scanner", + "TITLE": "Scan & Order", + "DESCRIPTION": "Scan the table beacon to browse the menu and order directly from your phone" + }, + { + "ICON": "group", + "TITLE": "Group Orders", + "DESCRIPTION": "Invite friends to join your order and split the bill easily" + }, + { + "ICON": "delivery_dining", + "TITLE": "Delivery & Takeaway", + "DESCRIPTION": "Order for delivery or pick up when dining in isn't an option" + }, + { + "ICON": "payment", + "TITLE": "Easy Payment", + "DESCRIPTION": "Pay your share securely with just a few taps" + } + ]; + + // Contact links displayed on the About screen + // icon: Flutter icon name (see AboutContact._iconMap in about_info.dart) + contacts = [ + { + "ICON": "help_outline", + "LABEL": "help.payfrit.com", + "URL": "https://help.payfrit.com" + }, + { + "ICON": "language", + "LABEL": "www.payfrit.com", + "URL": "https://www.payfrit.com" + } + ]; + + writeOutput(serializeJSON({ + "OK": true, + "DESCRIPTION": "Payfrit makes dining out easier. Order from your table, split the bill with friends, and pay without waiting.", + "FEATURES": features, + "CONTACTS": contacts, + "COPYRIGHT": "© #year(now())# Payfrit. All rights reserved." + })); + +} catch (any e) { + writeOutput(serializeJSON({ + "OK": false, + "ERROR": "server_error", + "MESSAGE": e.message + })); +} +