Refactor stock API to replace numeric flags with boolean values, add getItemLabel endpoint, and update tests/documentation
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -163,30 +163,33 @@ Expected shapes today:
|
||||
Returns `{ data: [...] }` or `{ kitchens: [...] }`.
|
||||
- `GET /{database}/kitchen/items?search_name=...`
|
||||
Returns item definitions for autocomplete.
|
||||
Item payloads now expose category links via `categories` (array of IDs).
|
||||
- `GET /{database}/kitchen/items`
|
||||
Returns the current stock review list. Endpoint is paginated (`limit`/`offset`, backend default `limit=100`); frontend helpers aggregate pages by default unless explicit pagination is passed.
|
||||
- `GET /{database}/kitchen/items/grouped?expanded=0|1`
|
||||
Returns grouped stock data; grouped review uses summary-first loading (`expanded=0`) and hydrates item children in background (`expanded=1`).
|
||||
With `expanded=0`, child `items` can be ID-only stubs (`{ id }`) instead of full item payloads.
|
||||
- `GET /{database}/kitchen/items/grouped?expanded=true|false`
|
||||
Returns grouped stock data; grouped review uses summary-first loading (`expanded=false`) and hydrates item children in background (`expanded=true`).
|
||||
With `expanded=false`, child `items` can be ID-only stubs (`{ id }`) instead of full item payloads.
|
||||
- `GET /{database}/kitchen/items/{uuid_b64}`
|
||||
Returns one item detail payload.
|
||||
Supports `allow_inactive=true|false` query filtering when needed.
|
||||
- `GET /{database}/kitchen/changes`
|
||||
Returns `{ since, next_cursor, changes }` feed payload for item/stock updates.
|
||||
- `POST /{database}/kitchen/items/upsert?mode=preview|apply`
|
||||
Used by label submit flow for create-or-update behavior and conflict-safe matching.
|
||||
- `POST /{database}/kitchen/items/lookup`
|
||||
Identifier lookup response includes source/freshness metadata (`source`, `cache_hit`, `stale_cache`, `payload_fetched_at`, `retry_after_seconds`) used for richer user feedback.
|
||||
- `POST /{database}/kitchen/items/{uuid_b64}/lookup?update=0|1`
|
||||
Item-scoped OpenFoodFacts lookup used by stock detail to preview (`update=0`) or apply missing fields (`update=1`).
|
||||
- `POST /{database}/kitchen/items?label=1`
|
||||
Used for label image preview rendering.
|
||||
- `POST /{database}/kitchen/items?label=1&preview=1`
|
||||
- `POST /{database}/kitchen/items/{uuid_b64}/lookup?update=true|false`
|
||||
Item-scoped OpenFoodFacts lookup used by stock detail to preview (`update=false`) or apply missing fields (`update=true`).
|
||||
- `POST /{database}/kitchen/items?label=true&preview=true`
|
||||
Returns an image blob, `{ imageUrl }`, or `{ imageSvg }` for in-browser preview.
|
||||
- `GET /{database}/kitchen/items/{uuid_b64}/label`
|
||||
Returns rendered label PNG for an existing item.
|
||||
- `POST /{database}/kitchen/items/{uuid_b64}/stock`
|
||||
Creates a stock event for measured or descriptive updates using `{ quantity }` or `{ level }`.
|
||||
Creates a stock event for measured or descriptive updates using `{ quantity }` or `{ level }`,
|
||||
and for non-consumed gone transitions (for example `{ level: "gone", gone_reason: "spoiled" }`).
|
||||
Response shape is `{ status, stock }`; frontend re-fetches the item detail after successful update.
|
||||
- `POST /{database}/kitchen/items/{uuid_b64}/use`
|
||||
Marks an item used up (`gone`) via stock-event semantics.
|
||||
Marks an item consumed/used up (`gone`) via stock-event semantics.
|
||||
- `POST /{database}/kitchen/items/{uuid_b64}/print-label`
|
||||
Prints label for an existing item; called from the save flow when `Print` is enabled.
|
||||
- `PATCH /{database}/kitchen/items/{uuid_b64}`
|
||||
|
||||
Reference in New Issue
Block a user