Add unit API and article unitamount/unitSi patch.

Units use the selected company; article PATCH accepts name/unitamount/unitSi.
This commit is contained in:
seb
2026-08-01 06:15:30 +02:00
parent aba9779161
commit bfb1d8762a
13 changed files with 744 additions and 29 deletions

View File

@@ -0,0 +1,33 @@
# `DELETE /unit`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Delete unit
Deletes `si` for the selected company. Fails with `Unit in use` if articles still reference it.
## Query parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `si` | yes | string | |
## Response `204`
Deleted
_No content_
## Errors
| Status | Description |
|--------|-------------|
| 400 | Missing si or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Company or unit not found — `{"error":"…"}` |
| 409 | Unit in use — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,30 @@
# `GET /unit`
Protected. Requires a valid session cookie (`credentials: 'include'`).
List units
Lists units for the authenticated user's selected company (default-language symbol/name).
## Response `200`
Unit list
```json
{
"units": []
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | No company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Company not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,44 @@
# `PUT /unit`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Upsert unit
Insert or update unit by `si` for the selected company. Upserts `unittext` for the company language.
`basesifactor` must be finite and `> 0`.
## Body (JSON)
```json
{
"si": "l",
"basesi": "l",
"basesifactor": 1,
"symbol": "L",
"name": "Liter"
}
```
## Response `200`
Upserted unit
```json
{
"unit": { … }
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid unit or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Company not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._