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.
72 lines
2.8 KiB
PHP
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()]);
|
|
}
|