From c8b83c63d3e7c9d16608ed689557452a30311858 Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Mon, 5 Jan 2026 12:04:31 +0100 Subject: [PATCH] Expand `openapi.yaml` with endpoints for branding, roles, permissions, department management, and module operations. --- openapi.yaml | 344 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 344 insertions(+) diff --git a/openapi.yaml b/openapi.yaml index 3bbce560..4071b18a 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2705,6 +2705,350 @@ paths: responses: '200': {description: Success} + /branding: + get: + tags: + - Branding + summary: List branding options + description: Retrieve a list of branding options or a specific branding option if ID is provided + operationId: listBrandingOptions + parameters: + - name: id + in: query + required: false + schema: + type: integer + - $ref: '#/components/parameters/PageParam' + - $ref: '#/components/parameters/PerPageParam' + responses: + '200': + description: Branding options retrieved successfully + '400': + $ref: '#/components/responses/BadRequest' + '403': + $ref: '#/components/responses/Forbidden' + post: + tags: + - Branding + summary: Add branding option + description: Create a new branding option + operationId: addBrandingOption + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [name, description, cvr] + properties: + name: {type: string} + description: {type: string} + cvr: {type: integer} + responses: + '200': + description: Branding option added successfully + '403': + $ref: '#/components/responses/Forbidden' + put: + tags: + - Branding + summary: Edit branding option + description: Update an existing branding option + operationId: editBrandingOption + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [id] + properties: + id: {type: integer} + name: {type: string} + description: {type: string} + cvr: {type: integer} + responses: + '200': + description: Branding option updated successfully + '403': + $ref: '#/components/responses/Forbidden' + + /roles: + get: + tags: + - Roles + summary: List roles + operationId: listRoles + responses: + '200': + description: Success + post: + tags: + - Roles + summary: Add role + operationId: addRole + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [name] + properties: + name: {type: string} + responses: + '200': + description: Success + put: + tags: + - Roles + summary: Edit role + operationId: editRole + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [id, name] + properties: + id: {type: integer} + name: {type: string} + responses: + '200': + description: Success + + /roles/permissions: + post: + tags: + - Roles + summary: Add permission to role + operationId: addRolePermission + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [role_id, permission] + properties: + role_id: {type: integer} + permission: {type: string} + responses: + '200': + description: Success + delete: + tags: + - Roles + summary: Remove permission from role + operationId: removeRolePermission + parameters: + - name: role_id + in: query + required: true + schema: {type: integer} + - name: permission + in: query + required: true + schema: {type: string} + responses: + '200': + description: Success + + /roles/clone: + post: + tags: + - Roles + summary: Clone role + operationId: cloneRole + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [role_id, name] + properties: + role_id: {type: integer} + name: {type: string} + responses: + '200': + description: Success + + /modules/washcertificates: + get: + tags: + - Modules + summary: List wash certificates + operationId: listWashCertificates + responses: + '200': + description: Success + + /modules/xlvask/services/usage/orders: + get: + tags: + - Modules + summary: Get XLVask usage orders + operationId: getXlvaskUsageOrders + responses: + '200': + description: Success + + /modules/xlvask/services/usage/orders/fast-link: + get: + tags: + - Modules + summary: Get XLVask usage orders fast link + operationId: getXlvaskUsageOrdersFastLink + responses: + '200': + description: Success + + /superuser/department: + get: + tags: + - Departments + summary: List departments (superuser) + operationId: listSuperuserDepartments + responses: + '200': + description: Success + + /superuser/department/prices: + get: + tags: + - Departments + summary: Get department prices + operationId: getDepartmentPrices + parameters: + - name: department_id + in: query + required: true + schema: {type: integer} + responses: + '200': + description: Success + post: + tags: + - Departments + summary: Set department price + operationId: setDepartmentPrice + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [department_id, category_id, price] + properties: + department_id: {type: integer} + category_id: {type: string} + price: {type: integer} + responses: + '200': + description: Success + + /superuser/department/variables: + get: + tags: + - Departments + summary: Get department variables + operationId: getDepartmentVariables + parameters: + - name: department_id + in: query + required: true + schema: {type: integer} + responses: + '200': + description: Success + post: + tags: + - Departments + summary: Set department variable + operationId: setDepartmentVariable + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [department_id, key, value] + properties: + department_id: {type: integer} + key: {type: string} + value: {type: string} + responses: + '200': + description: Success + + /departments/daily-reports: + get: + tags: + - Departments + summary: List daily reports + operationId: listDailyReports + responses: + '200': + description: Success + post: + tags: + - Departments + summary: Add daily report + operationId: addDailyReport + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [department_id, date, report] + properties: + department_id: {type: integer} + date: {type: string} + report: {type: string} + responses: + '200': + description: Success + put: + tags: + - Departments + summary: Edit daily report + operationId: editDailyReport + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [id, report] + properties: + id: {type: integer} + report: {type: string} + responses: + '200': + description: Success + + /departments/daily-reports/get: + get: + tags: + - Departments + summary: Get daily report + operationId: getDailyReport + parameters: + - name: department_id + in: query + required: true + schema: {type: integer} + - name: date + in: query + required: true + schema: {type: string} + responses: + '200': + description: Success + components: securitySchemes: BearerAuth: