Add lane reservation support: implement reservation timer, expiration logic, and new self-serve lane commands (RESERVE and RELEASE); enhance permission checks across routes for global and department-level operations.
This commit is contained in:
@@ -8,6 +8,7 @@ use classes\response;
|
||||
use classes\router;
|
||||
use classes\selfserve;
|
||||
use classes\stripe;
|
||||
use modules\selfserve\helpers\selfserve_lane_command;
|
||||
use objects\departments_o;
|
||||
use objects\logs_o;
|
||||
use objects\orders_o;
|
||||
@@ -69,19 +70,25 @@ class moduleSelfServeRoute
|
||||
if (self::hasPermission('modules_selfserve_lane_command_bypass_customer_number_validation')) {
|
||||
$lane->setBypassCustomerNumberValidation(true);
|
||||
}
|
||||
$command = \modules\selfserve\helpers\selfserve_lane_command::tryFrom($commandParam);
|
||||
$command = selfserve_lane_command::tryFrom($commandParam);
|
||||
if ($command === null) {
|
||||
$response->error("Invalid command: " . $commandParam);
|
||||
}
|
||||
// Require permissions for specific commands
|
||||
switch ($command) {
|
||||
case \modules\selfserve\helpers\selfserve_lane_command::START:
|
||||
case selfserve_lane_command::START:
|
||||
self::requirePermission('modules_selfserve_lane_command_execute_start');
|
||||
break;
|
||||
case \modules\selfserve\helpers\selfserve_lane_command::STOP:
|
||||
case selfserve_lane_command::STOP:
|
||||
self::requirePermission('modules_selfserve_lane_command_execute_stop');
|
||||
break;
|
||||
case \modules\selfserve\helpers\selfserve_lane_command::RESET:
|
||||
case selfserve_lane_command::RESERVE:
|
||||
self::requirePermission('modules_selfserve_lane_command_execute_reserve');
|
||||
break;
|
||||
case selfserve_lane_command::RELEASE:
|
||||
self::requirePermission('modules_selfserve_lane_command_execute_release');
|
||||
break;
|
||||
case selfserve_lane_command::RESET:
|
||||
self::requirePermission('modules_selfserve_lane_command_execute_reset');
|
||||
break;
|
||||
}
|
||||
@@ -111,6 +118,8 @@ class moduleSelfServeRoute
|
||||
'modules_selfserve_lane_command_execute' => 'Execute self-serve lane command. This is required together with specific command permissions below.',
|
||||
'modules_selfserve_lane_command_execute_start' => 'Execute self-serve lane START command',
|
||||
'modules_selfserve_lane_command_execute_stop' => 'Execute self-serve lane STOP command',
|
||||
'modules_selfserve_lane_command_execute_reserve' => 'Execute self-serve lane RESERVE command',
|
||||
'modules_selfserve_lane_command_execute_release' => 'Execute self-serve lane RELEASE command (Release the lane reservation and reset its state)',
|
||||
'modules_selfserve_lane_command_execute_reset' => 'Execute self-serve lane RESET command',
|
||||
'modules_selfserve_lane_command_bypass_customer_number_validation' => 'Bypass customer number validation when executing commands',
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user