This commit is contained in:
seb
2026-10-09 10:41:21 +02:00
parent 969c064f3a
commit 011d84c3c1
31 changed files with 1845 additions and 4 deletions

View File

@@ -0,0 +1,35 @@
# `GET /account`
Protected. Requires a valid session cookie (`credentials: 'include'`).
List accounts
Lists payment accounts for the selected company.
## Response `200`
List of accounts
```json
{
"accounts": [
{
"id": 1,
"companyId": 1,
"type": "…",
"name": "…"
}
]
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | No company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,48 @@
# `POST /account`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Create account
Creates a payment account for the selected company.
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `type` | yes | string | |
| `name` | yes | string | |
```json
{
"type": "…",
"name": "…"
}
```
## Response `201`
Created account
```json
{
"account": {
"id": 1,
"companyId": 1,
"type": "…",
"name": "…"
}
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Validation error or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,32 @@
# `DELETE /account/{id}`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Delete account
Deletes an account of the selected company. Its payments are removed as well.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Account ID |
## Response `204`
Account deleted
_No content_
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Account not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,43 @@
# `GET /order/{id}/payment`
Protected. Requires a valid session cookie (`credentials: 'include'`).
List payments of an order
Lists payments of the order (manifest) for the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Order ID |
## Response `200`
List of payments
```json
{
"payments": [
{
"id": 1,
"accountId": 1,
"manifestId": 1,
"type": "…",
"amount": 1
}
]
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 404 | Order not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,58 @@
# `POST /order/{id}/payment`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Add payment to an order
Adds a payment to the order using an account of the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Order ID |
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `accountId` | yes | integer | |
| `type` | yes | string | |
| `amount` | yes | number | |
```json
{
"accountId": 1,
"type": "…",
"amount": 1
}
```
## Response `201`
Created payment
```json
{
"payment": {
"id": 1,
"accountId": 1,
"manifestId": 1,
"type": "…",
"amount": 1
}
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Validation error or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Order or account not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,43 @@
# `GET /order/{id}/shipping`
Protected. Requires a valid session cookie (`credentials: 'include'`).
List shippings of an order
Lists shippings of the order (manifest) for the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Order ID |
## Response `200`
List of shippings
```json
{
"shippings": [
{
"id": 1,
"manifestId": 1,
"number": "…",
"type": "…",
"state": "…"
}
]
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 404 | Order not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,58 @@
# `POST /order/{id}/shipping`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Create shipping for an order
Creates a shipping for the order. The shipping number is allocated from the
`shipping` number sequence (prefix and counter from the numbers API).
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Order ID |
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `type` | yes | string | |
| `state` | yes | string | |
```json
{
"type": "…",
"state": "…"
}
```
## Response `201`
Created shipping
```json
{
"shipping": {
"id": 1,
"manifestId": 1,
"number": "…",
"type": "…",
"state": "…"
}
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Validation error or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Order not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,31 @@
# `DELETE /package/{id}`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Delete package
Deletes a package of the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Package ID |
## Response `204`
Package deleted
_No content_
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,31 @@
# `DELETE /payment/{id}`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Delete payment
Deletes a payment of an order in the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Payment ID |
## Response `204`
Payment deleted
_No content_
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,31 @@
# `DELETE /shipping/{id}`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Delete shipping
Deletes a shipping of the selected company. Its packages are removed as well.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Shipping ID |
## Response `204`
Shipping deleted
_No content_
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,45 @@
# `GET /shipping/{id}/package`
Protected. Requires a valid session cookie (`credentials: 'include'`).
List packages of a shipping
Lists packages of the shipping for the selected company.
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Shipping ID |
## Response `200`
List of packages
```json
{
"packages": [
{
"id": 1,
"shippingId": 1,
"entityaddressId": 1,
"number": "…",
"type": "…",
"state": "…",
"details": "…"
}
]
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Invalid ID or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 404 | Shipping not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._

View File

@@ -0,0 +1,64 @@
# `POST /shipping/{id}/package`
Protected. Requires a valid session cookie (`credentials: 'include'`).
Create package for a shipping
Creates a package for the shipping. The package number is allocated from the
`package` number sequence. `entityaddressId` is required (target address).
## Path parameters
| Param | Required | Type | Description |
|-------|----------|------|-------------|
| `id` | yes | integer | Shipping ID |
## Body (JSON)
| Field | Required | Type | Description |
|-------|----------|------|-------------|
| `entityaddressId` | yes | integer | |
| `type` | yes | string | |
| `state` | yes | string | |
| `details` | no | string | |
```json
{
"entityaddressId": 1,
"type": "…",
"state": "…",
"details": "…"
}
```
## Response `201`
Created package
```json
{
"package": {
"id": 1,
"shippingId": 1,
"entityaddressId": 1,
"number": "…",
"type": "…",
"state": "…",
"details": "…"
}
}
```
## Errors
| Status | Description |
|--------|-------------|
| 400 | Validation error or no company selected — `{"error":"…"}` |
| 401 | Unauthorized — `{"error":"…"}` |
| 403 | Not authorized — `{"error":"…"}` |
| 404 | Shipping or entity address not found — `{"error":"…"}` |
---
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._