Cookest
API BackendEndpoints

Inventário

Gestão da despensa — artigos, quantidades, datas de validade e deduções

Inventário

GET /api/inventory

Listar os artigos da despensa do utilizador.

MétodoCaminhoAutenticaçãoNível
GET/api/inventoryJWT BearerFree

Parâmetros de consulta

ParâmetroTipoDescrição
expiring_soonbooleanFiltrar artigos a expirar nos próximos 3 dias
locationstringFiltrar por localização de armazenamento (fridge, freezer, pantry)

Resposta 200 OK

{
  "items": [
    {
      "id": "uuid",
      "ingredient_id": 1,
      "name": "Chicken Breast",
      "quantity": 500,
      "unit": "g",
      "location": "fridge",
      "expiry_date": "2024-01-22",
      "is_expiring_soon": true,
      "added_at": "2024-01-18T09:00:00Z"
    }
  ],
  "expiring_count": 2
}

POST /api/inventory

Adicionar um artigo à despensa.

MétodoCaminhoAutenticaçãoNível
POST/api/inventoryJWT BearerFree

Corpo do pedido

{
  "ingredient_id": 1,
  "quantity": 500,
  "unit": "g",
  "location": "fridge",
  "expiry_date": "2024-01-22"
}

Valores de location: fridge | freezer | pantry | other

Resposta 201 Created

Devolve o artigo de inventário criado.


PUT /api/inventory/:id

Atualizar um artigo do inventário (quantidade, data de validade, localização).

MétodoCaminhoAutenticaçãoNível
PUT/api/inventory/:idJWT BearerFree

Corpo do pedido (todos os campos opcionais)

{
  "quantity": 300,
  "unit": "g",
  "location": "freezer",
  "expiry_date": "2024-02-15"
}

Resposta 200 OK

Devolve o artigo de inventário atualizado.


DELETE /api/inventory/:id

Remover um artigo da despensa.

MétodoCaminhoAutenticaçãoNível
DELETE/api/inventory/:idJWT BearerFree

Resposta 204 No Content


POST /api/inventory/sync

Sincronizar o inventário após cozinhar — deduz quantidades de ingredientes com base na lista de ingredientes de uma receita.

MétodoCaminhoAutenticaçãoNível
POST/api/inventory/syncJWT BearerFree

Corpo do pedido

{
  "recipe_id": "uuid",
  "servings": 2
}

Resposta 200 OK

{
  "updated_items": 4,
  "depleted_items": ["Olive Oil", "Garlic"]
}

depleted_items contém os nomes dos ingredientes que atingiram quantidade zero e foram removidos automaticamente.

On this page