Add routes to view and update the self-serve enabled status for departments
This commit is contained in:
@@ -5,6 +5,7 @@ namespace routes;
|
||||
use classes\authentication;
|
||||
use objects\categories_o;
|
||||
use objects\department_categories_o;
|
||||
use objects\department_variables_o;
|
||||
use objects\departments_o;
|
||||
use objects\logs_o;
|
||||
use objects\orders_o;
|
||||
@@ -221,6 +222,81 @@ class departmentsRoute
|
||||
]
|
||||
);
|
||||
|
||||
$this->get('/departments/self-serve/enabled', function () {
|
||||
// Require the user to be logged in
|
||||
global $response;
|
||||
self::requirePermission('view_department_selfserve_enabled');
|
||||
// Get the user object
|
||||
$user = (new authentication())->get_user();
|
||||
// Check if the request was successful
|
||||
if ($user) {
|
||||
// Require the department id
|
||||
self::requireParameters(['id']);
|
||||
self::requireType((int)self::getParameter('id'), self::type_int());
|
||||
// Get the department object
|
||||
$department = (new departments_o())->select(self::getParameter('id'));
|
||||
// Validate the department object
|
||||
if (!$department->exists()) {
|
||||
// Return an error
|
||||
$response->error('Department not found', 404);
|
||||
}
|
||||
// Get the department variable
|
||||
$department_variables = (new department_variables_o())->selectDepartment($department->id);
|
||||
$enabled = $department_variables->getVariable('selfserve_enabled');
|
||||
|
||||
// Return the status
|
||||
$response->success([
|
||||
'enabled' => $enabled === true
|
||||
]);
|
||||
} else {
|
||||
// Return an error
|
||||
$response->error('Invalid session', 400);
|
||||
}
|
||||
},
|
||||
[
|
||||
'view_department_selfserve_enabled' => 'View if department self-serve is enabled'
|
||||
]
|
||||
);
|
||||
|
||||
$this->put('/departments/self-serve/enabled', function () {
|
||||
// Require the user to be logged in
|
||||
global $response;
|
||||
self::requirePermission('edit_department_selfserve_enabled');
|
||||
// Get the user object
|
||||
$user = (new authentication())->get_user();
|
||||
// Check if the request was successful
|
||||
if ($user) {
|
||||
// Require the department id and enabled status
|
||||
self::requireParameters(['id', 'enabled']);
|
||||
self::requireType((int)self::getParameter('id'), self::type_int());
|
||||
|
||||
// Get the department object
|
||||
$department = (new departments_o())->select(self::getParameter('id'));
|
||||
// Validate the department object
|
||||
if (!$department->exists()) {
|
||||
// Return an error
|
||||
$response->error('Department not found', 404);
|
||||
}
|
||||
// Set the department variable
|
||||
$department_variables = (new department_variables_o())->selectDepartment($department->id);
|
||||
$enabled = self::getParameter('enabled') === 'true' || self::getParameter('enabled') === true || self::getParameter('enabled') === 1 || self::getParameter('enabled') === '1';
|
||||
$department_variables->set('selfserve_enabled', $enabled ? 'true' : 'false');
|
||||
|
||||
// Log the incident
|
||||
(new logs_o())->add('departments', $department->id, 1, $user->id, 'EDIT_DEPARTMENT_SELFSERVE_ENABLED', 'Successfully edited department self-serve enabled status to ' . ($enabled ? 'true' : 'false'));
|
||||
|
||||
// Return a success message
|
||||
$response->success(['message' => 'Department self-serve enabled status updated successfully']);
|
||||
} else {
|
||||
// Return an error
|
||||
$response->error('Invalid session', 400);
|
||||
}
|
||||
},
|
||||
[
|
||||
'edit_department_selfserve_enabled' => 'Edit if department self-serve is enabled'
|
||||
]
|
||||
);
|
||||
|
||||
$this->post('/departments/categories', function () {
|
||||
// Require the user to be logged in
|
||||
global $response;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
### GET /departments/self-serve/enabled
|
||||
GET {{api_url}}/departments/self-serve/enabled?id=1
|
||||
Accept: application/json
|
||||
Authorization: Bearer {{auth_token_superuser}}
|
||||
|
||||
### PUT /departments/self-serve/enabled
|
||||
PUT {{api_url}}/departments/self-serve/enabled?id=1&enabled=true
|
||||
Accept: application/json
|
||||
Authorization: Bearer {{auth_token_superuser}}
|
||||
|
||||
### PUT /departments/self-serve/enabled (disable)
|
||||
PUT {{api_url}}/departments/self-serve/enabled?id=1&enabled=false
|
||||
Accept: application/json
|
||||
Authorization: Bearer {{auth_token_superuser}}
|
||||
Reference in New Issue
Block a user