payfrit-api/api/businesses/updateTabs.php
John Mizerek 1f81d98c52 Initial PHP API migration from CFML
Complete port of all 163 API endpoints from Lucee/CFML to PHP 8.3.
Shared helpers in api/helpers.php (DB, auth, request/response, security).
PDO prepared statements throughout. Same JSON response shapes as CFML.
2026-03-14 14:26:59 -07:00

72 lines
2.8 KiB
PHP

<?php
require_once __DIR__ . '/../helpers.php';
runAuth();
/**
* Update Business Tab/Session Settings
* POST: { BusinessID, SessionEnabled, SessionLockMinutes, SessionPaymentStrategy,
* TabMinAuthAmount, TabDefaultAuthAmount, TabMaxAuthAmount,
* TabAutoIncreaseThreshold, TabMaxMembers, TabApprovalRequired }
*/
$data = readJsonBody();
if (empty($data)) {
apiAbort(['OK' => false, 'ERROR' => 'missing_body']);
}
$businessID = (int) ($data['BusinessID'] ?? 0);
if ($businessID <= 0) {
apiAbort(['OK' => false, 'ERROR' => 'missing_BusinessID']);
}
$sessionEnabled = (int) ($data['SessionEnabled'] ?? 0);
$sessionLockMinutes = (int) ($data['SessionLockMinutes'] ?? 30);
$sessionPaymentStrategy = substr(trim($data['SessionPaymentStrategy'] ?? 'A'), 0, 1);
$tabMinAuth = (float) ($data['TabMinAuthAmount'] ?? 50.00);
$tabDefaultAuth = (float) ($data['TabDefaultAuthAmount'] ?? 150.00);
$tabMaxAuth = (float) ($data['TabMaxAuthAmount'] ?? 1000.00);
$tabAutoThreshold = (float) ($data['TabAutoIncreaseThreshold'] ?? 0.80);
$tabMaxMembers = (int) ($data['TabMaxMembers'] ?? 10);
$tabApprovalRequired = (int) ($data['TabApprovalRequired'] ?? 1);
// Validate ranges
$sessionLockMinutes = max(5, min(480, $sessionLockMinutes));
if (!in_array($sessionPaymentStrategy, ['A', 'P'])) $sessionPaymentStrategy = 'A';
$tabMinAuth = max(10, min(10000, $tabMinAuth));
$tabMaxAuth = max($tabMinAuth, min(10000, $tabMaxAuth));
$tabDefaultAuth = max($tabMinAuth, min($tabMaxAuth, $tabDefaultAuth));
$tabAutoThreshold = max(0.5, min(1.0, $tabAutoThreshold));
$tabMaxMembers = max(1, min(50, $tabMaxMembers));
try {
queryTimed("
UPDATE Businesses SET
SessionEnabled = ?, SessionLockMinutes = ?, SessionPaymentStrategy = ?,
TabMinAuthAmount = ?, TabDefaultAuthAmount = ?, TabMaxAuthAmount = ?,
TabAutoIncreaseThreshold = ?, TabMaxMembers = ?, TabApprovalRequired = ?
WHERE ID = ?
", [
$sessionEnabled, $sessionLockMinutes, $sessionPaymentStrategy,
$tabMinAuth, $tabDefaultAuth, $tabMaxAuth,
$tabAutoThreshold, $tabMaxMembers, $tabApprovalRequired,
$businessID
]);
jsonResponse([
'OK' => true,
'ERROR' => '',
'BusinessID' => $businessID,
'SessionEnabled' => $sessionEnabled,
'SessionLockMinutes' => $sessionLockMinutes,
'SessionPaymentStrategy' => $sessionPaymentStrategy,
'TabMinAuthAmount' => $tabMinAuth,
'TabDefaultAuthAmount' => $tabDefaultAuth,
'TabMaxAuthAmount' => $tabMaxAuth,
'TabAutoIncreaseThreshold' => $tabAutoThreshold,
'TabMaxMembers' => $tabMaxMembers,
'TabApprovalRequired' => $tabApprovalRequired,
]);
} catch (Exception $e) {
jsonResponse(['OK' => false, 'ERROR' => 'server_error', 'MESSAGE' => $e->getMessage()]);
}