Support collected invoice economic PDF downloads

This commit is contained in:
Jeppe B
2026-07-14 15:39:39 +02:00
parent 69b3bf83c4
commit 0feb705059
23 changed files with 3253 additions and 136 deletions
@@ -0,0 +1,70 @@
<?php
namespace routes;
use classes\module_usage_service;
use Exception;
use traits\route_t;
class moduleUsageRoute
{
use route_t;
public function run(): void
{
$this->get('/modules/usage/summary', function () {
global $response;
$this->requirePermission('modules_usage_view');
$response->success((new module_usage_service())->summary([
'module' => $this->getParameter('module'),
'period' => $this->getParameter('period'),
'status' => $this->getParameter('status'),
'date' => $this->getParameter('date'),
]));
}, [
'modules_usage_view' => 'View module usage, quota, and statistics summaries',
]);
$this->get('/modules/usage/{moduleKey}', function () {
global $response;
$this->requirePermission('modules_usage_view');
$moduleKey = (string)($this->fromRoute('moduleKey') ?? '');
$response->success((new module_usage_service())->moduleDetail($moduleKey, [
'period' => $this->getParameter('period'),
'date' => $this->getParameter('date'),
'limit' => $this->getParameter('limit'),
]));
}, [
'modules_usage_view' => 'View detailed module usage, quota, and statistics history',
]);
$this->patch('/modules/quotas/{moduleKey}/{metricKey}', function () {
global $response;
$this->requirePermission('modules_quotas_manage');
$moduleKey = (string)($this->fromRoute('moduleKey') ?? '');
$metricKey = (string)($this->fromRoute('metricKey') ?? '');
try {
$response->success((new module_usage_service())->updateQuotaSetting(
$moduleKey,
$metricKey,
$response->getAllRequestParameters()
));
} catch (Exception $exception) {
if ($exception->getMessage() === 'quota_not_writable') {
$response->error([
'message' => 'Quota limit is not writable for this provider or derived metric.',
'code' => 'quota_not_writable',
], 409);
}
$response->error($exception->getMessage(), 422);
}
}, [
'modules_quotas_manage' => 'Manage module quota enforcement and writable hard limits',
]);
}
}