Refactor /subusers/grants to use paginated response and update dependencies
- Replace manual grant data processing with `listObjectsWithPaginationIfSet` for cleaner pagination and mapping logic. - Include `subusers_permission_node_key` helper in dependencies.
This commit is contained in:
@@ -112,6 +112,9 @@ require_once 'modules/goals/classes/goals_criteria_products.php';
|
||||
require_once 'modules/goals/classes/goals_criteria.php';
|
||||
require_once 'modules/goals/classes/goals.php';
|
||||
|
||||
// Subusers module (helpers used by objects)
|
||||
require_once 'modules/subusers/helpers/subusers_permission_node_key.php';
|
||||
|
||||
// Dynamic Images module
|
||||
foreach (glob(WD . '/modules/dynamicimages/interfaces/*.php') as $interface) {
|
||||
require_once $interface;
|
||||
|
||||
@@ -64,19 +64,20 @@ class subusersRoute
|
||||
if (!$hasFilter) {
|
||||
$response->error('You must provide at least one of: customer_number or subuser_id', 400);
|
||||
}
|
||||
$rows = (new subuser_grants_o())->getFieldsWhere($filters, [
|
||||
'id', 'billing_customer_number', 'subuser', 'enabled', 'note', 'permissions', 'created_at', 'updated_at', 'deleted_at'
|
||||
]);
|
||||
// Decode permissions JSON
|
||||
$data = array_map(function ($row) {
|
||||
$row['id'] = (int)$row['id'];
|
||||
$row['billing_customer_number'] = (int)$row['billing_customer_number'];
|
||||
$row['subuser'] = (int)$row['subuser'];
|
||||
$row['enabled'] = (bool)$row['enabled'];
|
||||
$row['permissions'] = (!empty($row['permissions'])) ? (json_decode($row['permissions'], true) ?: []) : [];
|
||||
return $row;
|
||||
}, $rows);
|
||||
$response->success(['grants' => $data]);
|
||||
$paginatedResponse = (new subuser_grants_o())->listObjectsWithPaginationIfSet(function ($o) {
|
||||
$o = (object)$o;
|
||||
return [
|
||||
'id' => $o->id,
|
||||
'billing_customer_number' => $o->billing_customer_number,
|
||||
'subuser' => $o->subuser,
|
||||
'enabled' => $o->enabled,
|
||||
'note' => $o->note,
|
||||
'permissions' => json_decode($o->permissions, true) ?: [],
|
||||
'created_at' => $o->created_at,
|
||||
'updated_at' => $o->updated_at,
|
||||
];
|
||||
}, $filters);
|
||||
$response->success($paginatedResponse);
|
||||
}, []);
|
||||
|
||||
$this->post('/subusers/grants', function () {
|
||||
|
||||
Reference in New Issue
Block a user