Files
api/services/nginx/app/routes/guestRoute.php
T
Jeppe Bundgaard 6d49befd22 Add /guest/departments endpoint for paginated department retrieval
- Introduced `GET /guest/departments` in `guestRoute` to fetch departments with pagination.
- Limited response to include only `id` and `name` fields for streamlined output.
2025-11-20 13:13:16 +01:00

64 lines
2.2 KiB
PHP

<?php
namespace routes;
use classes\authentication;
use classes\recaptcha;
use classes\virkdata;
use objects\departments_o;
use objects\logs_o;
use objects\tokens_o;
use objects\users_o;
use traits\route_t;
class guestRoute
{
use route_t;
public function run(): void
{
$this->post('/guest/validation/customer-number', function () {
// Get the post data
global $response;
self::requireParameters(['customer_number']);
// Validate the customer number
$customer_number = (int)$this->getParameter('customer_number');
self::requireType($customer_number, $this->type_int());
self::requireMinValue($customer_number, 1);
self::requireMaxValue($customer_number, 999999999);
$customer_number = (int)$this->getParameter('customer_number');
// Check if the customer number exists
$doesCustomerExist = (new users_o())->getUserByCustomerNumber($customer_number)->exists();
// Return the result
$response->success(['exists' => $doesCustomerExist, 'customer_number' => $customer_number]);
});
$this->get('/cvr/search', function () {
global $response;
//self::requirePermission('cvr_search'); // TODO: Remove this
self::requireParameters(['query']);
$query = self::getParameter('query');
if (strlen($query) < 2) {
$response->error('Query must be at least 2 characters long', 400);
}
$virkdata = new virkdata();
$result = $virkdata->searchCompanies($query);
$response->success($result, 200);
}, [
'cvr_search' => 'Search CVR numbers'
]);
$this->get('/guest/departments', function () {
global $response;
$departments = (new departments_o());
$response->success($departments->listObjectsWithPaginationIfSet(function ($department_array) {
// Only return id and name
return [
'id' => $department_array['id'],
'name' => $department_array['name']
];
}), 200);
});
}
}