Orders
Gestión de Órdenes
Los endpoints de órdenes permiten gestionar los pedidos del restaurante, incluyendo los platos asociados.
-
GET /orders
: Obtiene todas las órdenes del sistema.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- cURL Example:
curl -X GET "http://127.0.0.1:9154/orders" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json"- Response Body (Éxito - 200 OK):
[
{
"id": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "Juan Pérez",
"status": "pending",
"total": 45.50,
"created_at": "2025-01-15T14:30:00Z"
}
]- Response Body (Sin contenido - 204 No Content):
"No orders found"
-
GET /orders/{id}
: Obtiene una orden específica por su ID.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Path Parameters:
id
(string): ID de la orden a obtener
- cURL Example:
curl -X GET "http://127.0.0.1:9154/orders/76ee1086-b945-4170-b2e6-9fbeb95ae0be" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json"- Response Body (Éxito - 200 OK):
{
"id": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "Juan Pérez",
"status": "pending",
"total": 45.50,
"created_at": "2025-01-15T14:30:00Z"
}- Response Body (Error - 400 Bad Request):
"Missing or malformed ID"
- Response Body (Error - 404 Not Found):
"Order not found"
-
GET /orders/{id}/complete
: Obtiene una orden completa con todos sus platos.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Path Parameters:
id
(string): ID de la orden a obtener
- cURL Example:
curl -X GET "http://127.0.0.1:9154/orders/76ee1086-b945-4170-b2e6-9fbeb95ae0be/complete" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json"- Response Body (Éxito - 200 OK):
{
"order": {
"id": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "Juan Pérez",
"status": "pending",
"total": 45.50,
"created_at": "2025-01-15T14:30:00Z"
},
"dishes": [
{
"id": "dish-uuid-1",
"order_id": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"dish_id": "pizza-uuid",
"price_at_order": 15.99,
"notes": "Sin cebolla"
}
]
} -
POST /orders
: Crea una nueva orden en el sistema.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Request Body:
{
"user_id": "string",
"table_id": "string",
"waiter": "string",
"status": "string",
"total": 0.0
}- cURL Example:
curl -X POST "http://127.0.0.1:9154/orders" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json" \
-d '{
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "María García",
"status": "pending",
"total": 0.0
}'- Response Body (Éxito - 201 Created):
{
"message": "Order added successfully",
"id": "new-order-uuid"
} -
POST /orders/with-dishes
: Crea una orden completa con platos incluidos.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Request Body:
{
"order": {
"user_id": "string",
"table_id": "string",
"waiter": "string",
"status": "string",
"total": 0.0
},
"dishes": [
{
"dish_id": "string",
"price_at_order": 0.0,
"notes": "string"
}
]
}- cURL Example:
curl -X POST "http://127.0.0.1:9154/orders/with-dishes" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json" \
-d '{
"order": {
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "Carlos López",
"status": "pending",
"total": 0.0
},
"dishes": [
{
"dish_id": "pizza-uuid",
"price_at_order": 15.99,
"notes": "Extra queso"
}
]
}' -
PUT /orders/{id}
: Actualiza una orden existente.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Path Parameters:
id
(string): ID de la orden a actualizar
- Request Body:
{
"user_id": "string",
"table_id": "string",
"waiter": "string",
"status": "string",
"total": 0.0
}- cURL Example:
curl -X PUT "http://127.0.0.1:9154/orders/76ee1086-b945-4170-b2e6-9fbeb95ae0be" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json" \
-d '{
"user_id": "262006ea-8782-4b08-ac3b-b3f13270fec3",
"table_id": "123e4567-e89b-12d3-a456-426614174000",
"waiter": "Ana Martínez",
"status": "completed",
"total": 48.75
}'- Response Body (Éxito - 200 OK):
{
"message": "Order updated successfully"
} -
DELETE /orders/{id}
: Elimina una orden del sistema.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Path Parameters:
id
(string): ID de la orden a eliminar
- cURL Example:
curl -X DELETE "http://127.0.0.1:9154/orders/76ee1086-b945-4170-b2e6-9fbeb95ae0be" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here'
-H "Content-Type: application/json"- Response Body (Éxito - 200 OK):
{
"message": "Order deleted successfully"
}
Gestión de Platos en Órdenes
-
GET /orders/{id}/dishes
: Obtiene todos los platos de una orden específica.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- cURL Example:
curl -X GET "http://127.0.0.1:9154/orders/76ee1086-b945-4170-b2e6-9fbeb95ae0be/dishes" \
-H 'Cookie: accessToken=your_access_token_here' \
-H 'Cookie: refreshToken=your_refresh_token_here' \
-H "Content-Type: application/json" -
POST /orders/{id}/dishes
: Agrega platos a una orden existente.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
- Request Body:
[
{
"dish_id": "string",
"price_at_order": 0.0,
"notes": "string"
}
] -
PUT /orders/{id}/dishes/{dishId}
: Actualiza un plato específico de una orden.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
-
DELETE /orders/{id}/dishes/{dishId}
: Elimina un plato específico de una orden.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
-
DELETE /orders/{id}/dishes
: Elimina todos los platos de una orden.- Authorization: Requiere autenticación JWT (enviado automáticamente via cookies)
Notas importantes:
- Todos los endpoints de órdenes requieren autenticación JWT
- Los IDs son UUID generados automáticamente
- El total de la orden se calcula automáticamente basado en los platos
- Los tokens se envían automáticamente via cookies del navegador