Config
Gestión de Configuración
Endpoints para gestionar la configuración general de la aplicación.
-
GET /config: Obtiene la configuración actual de la aplicación.- Authorization: Ninguna (público)
- cURL Example:
curl -X GET "http://127.0.0.1:9154/config"- Response Body (200 OK):
{"id": 1,"businessType": "store","businessName": "Ambrosia Restaurant","businessAddress": "123 Main Street, Anytown","businessPhone": "555-1234","businessEmail": "contact@ambrosia.com","businessTaxId": "ABC123456","businessLogoUrl": null,"businessTypeConfirmed": false}- Response Body (404 Not Found):
"Config not found" -
PUT /config: Actualiza la configuración de la aplicación.- Authorization: Requiere
settings_update
ImportanteEste endpoint requiere el envío del objeto de configuración completo. Omitir campos obligatorios (
businessName,businessType) resultará en un error500 Internal Server Error.- Request Body:
{"businessType": "store","businessName": "string","businessAddress": "string (opcional)","businessPhone": "string (opcional)","businessEmail": "string (opcional)","businessTaxId": "string (opcional)","businessLogoUrl": "string (opcional)","businessTypeConfirmed": false}- cURL Example:
curl -X PUT "http://127.0.0.1:9154/config" \-H "Cookie: accessToken=$ACCESS_TOKEN" \-H "Content-Type: application/json" \-d '{"businessType": "store","businessName": "Ambrosia Updated","businessAddress": "456 Oak Avenue, Anytown","businessPhone": "555-5678","businessEmail": "info@ambrosia.com","businessTaxId": "XYZ987654","businessLogoUrl": null,"businessTypeConfirmed": true}'- Response Body (200 OK):
{"message": "Config updated successfully"}- Response Body (404 Not Found):
"Failed to update config" - Authorization: Requiere
Archivos
-
POST /uploads: Sube uno o más archivos al servidor (imágenes, logos, etc.).- Authorization: Requiere access token si el sistema ya fue inicializado. Libre durante la configuración inicial.
- Content-Type:
multipart/form-data - cURL Example:
curl -X POST "http://127.0.0.1:9154/uploads" \-H "Cookie: accessToken=$ACCESS_TOKEN" \-F "file=@/path/to/logo.png"- Response Body (201 Created):
{"uploads": [{"path": "/uploads/logo.png","url": "http://127.0.0.1:9154/uploads/logo.png"}]}- Response Body (400 Bad Request): no se envió ningún archivo
{ "message": "No files uploaded" } -
GET /uploads/{filename}: Accede a un archivo subido previamente.- Authorization: No requiere autenticación (archivos estáticos)
- cURL Example:
curl -X GET "http://127.0.0.1:9154/uploads/logo.png"
Monedas
-
GET /currencies: Lista todas las monedas disponibles en el sistema.- Authorization: Requiere
settings_read - cURL Example:
curl -X GET "http://127.0.0.1:9154/currencies" \-H "Cookie: accessToken=$ACCESS_TOKEN"- Response Body (200 OK):
[{ "id": "1", "name": "US Dollar", "acronym": "USD", "symbol": "$" },{ "id": "2", "name": "Euro", "acronym": "EUR", "symbol": "€" }] - Authorization: Requiere
-
GET /base-currency: Obtiene la moneda base configurada para el negocio.- Authorization: Requiere
settings_read
Bug conocidoExiste una implementación duplicada en
Routing.ktque responde200 { "currency_id": null }cuando no hay moneda base. El comportamiento correcto (documentado aquí) es el deCurrency.kt. Issue reportado al equipo de backend.- cURL Example:
curl -X GET "http://127.0.0.1:9154/base-currency" \-H "Cookie: accessToken=$ACCESS_TOKEN"- Response Body (200 OK):
{ "id": "1", "name": "US Dollar", "acronym": "USD", "symbol": "$" }- Response Body (404 Not Found): moneda base no configurada
{ "message": "Base currency not set" } - Authorization: Requiere
-
PUT /base-currency: Establece la moneda base por acrónimo.- Authorization: Requiere
settings_update - Request Body:
{ "acronym": "USD" }- cURL Example:
curl -X PUT "http://127.0.0.1:9154/base-currency" \-H "Cookie: accessToken=$ACCESS_TOKEN" \-H "Content-Type: application/json" \-d '{ "acronym": "USD" }'- Response Body (200 OK):
{ "id": "1", "name": "US Dollar", "acronym": "USD", "symbol": "$" }- Response Body (400 Bad Request): acrónimo en blanco o ausente
{ "message": "Acronym is required" }- Response Body (404 Not Found): acrónimo desconocido
{ "message": "Unknown currency acronym: XYZ" } - Authorization: Requiere