Add unit tests for advanced target duration parsing, goal range calculations, and Workfeed query normalization. Extend OpenAPI spec with updated schemas and examples.

This commit is contained in:
Jeppe Bundgaard
2026-03-24 11:35:13 +01:00
parent 8c9388546b
commit 28b571e2e6
13 changed files with 877 additions and 332 deletions
@@ -27,15 +27,7 @@ class moduleWorkfeedRoute
$response->error('Invalid session', 400);
}
$filters = $this->filterRequestParameters($_GET, [
'search',
'departmentId',
'includeInactive',
'limit',
'cursor',
]);
$result = (new workfeed())->listEmployees($filters);
$result = (new workfeed())->listEmployees();
(new logs_o())->add('modules_workfeed', 'global', 1, $user->id, 'MODULES_WORKFEED_EMPLOYEES_LIST', 'Listed Workfeed employees');
$response->success($result, 200);
}, [
@@ -66,15 +58,34 @@ class moduleWorkfeedRoute
}
$filters = $this->filterRequestParameters($_GET, [
'startFrom',
'startTo',
'from',
'to',
'departmentId',
'employeeID',
'employeeId',
'status',
'limit',
'cursor',
'released',
]);
if (!isset($filters['startFrom']) && isset($filters['from'])) {
$filters['startFrom'] = $filters['from'];
}
if (!isset($filters['startTo']) && isset($filters['to'])) {
$filters['startTo'] = $filters['to'];
}
if (!isset($filters['employeeID']) && isset($filters['employeeId'])) {
$filters['employeeID'] = $filters['employeeId'];
}
unset($filters['from'], $filters['to'], $filters['employeeId']);
if (!isset($filters['startFrom']) || trim((string)$filters['startFrom']) === '') {
$response->error('Missing required query parameter: startFrom', 400);
}
if (!isset($filters['startTo']) || trim((string)$filters['startTo']) === '') {
$response->error('Missing required query parameter: startTo', 400);
}
$result = (new workfeed())->listShifts($filters);
(new logs_o())->add('modules_workfeed', 'global', 1, $user->id, 'MODULES_WORKFEED_SHIFTS_LIST', 'Listed Workfeed shifts');
$response->success($result, 200);
@@ -105,13 +116,7 @@ class moduleWorkfeedRoute
$response->error('Invalid session', 400);
}
$filters = $this->filterRequestParameters($_GET, [
'search',
'limit',
'cursor',
]);
$result = (new workfeed())->listDepartments($filters);
$result = (new workfeed())->listDepartments();
(new logs_o())->add('modules_workfeed', 'global', 1, $user->id, 'MODULES_WORKFEED_DEPARTMENTS_LIST', 'Listed Workfeed departments');
$response->success($result, 200);
}, [