Actualizar dirección existente
PUT/addresses/:id
Propósito
Actualiza los datos de una dirección existente que pertenece a la empresa del usuario autenticado.
Objetivo
Permitir corregir o actualizar la información de una dirección ya registrada (nombre, teléfono, ubicación) sin tener que eliminarla y recrearla.
Casos de uso
- Corregir el nombre o teléfono de contacto de un punto de entrega.
- Actualizar las coordenadas GPS mediante un nuevo objeto
addressGoogleMaps. - Establecer o quitar una dirección como predeterminada de la empresa.
Flujo de validación
flowchart TD
A[Recibir PUT /addresses/:id] --> B{¿Usuario autenticado?}
B -->|No| C[401 Unauthorized]
B -->|Sí| D{¿Dirección existe?}
D -->|No| E[404 NOT_FOUND]
D -->|Sí| F{¿Dirección pertenece a la empresa?}
F -->|No| G[403 NOT_ALLOWED]
F -->|Sí| H{¿Se envía addressGoogleMaps?}
H -->|Sí| I[Recalcular campos de ubicación]
H -->|No| J[Mantener ubicación actual]
I --> K{¿isDefault?}
J --> K
K -->|true| L[Establecer como address_default]
K -->|false/omitido| M{¿Era la predeterminada?}
M -->|Sí| N[Eliminar address_default]
M -->|No| O[Sin cambios en default]
L --> P[200 OK]
N --> P
O --> P
Detalles técnicos
El servidor verifica que el id exista y esté incluido en el array
addresses de la empresa; de lo contrario devuelve 403 NOT_ALLOWED.
Cuando se envía addressGoogleMaps, los campos de ubicación (city,
street_address, street_number, zipcode, province, country,
location, placeId, name_address) se recalculan desde los
address_components de Google. Los campos que no están presentes en
el nuevo body se eliminan del documento si pertenecen a la lista de
campos de dirección editables.
Comportamiento de isDefault:
true→ establece esta dirección comoaddress_defaultde la empresa.falseo no enviado → si la dirección era la predeterminada, se eliminaaddress_defaultde la empresa (se des-marca).
Autenticación
Soporta JWT Bearer token y API Key.
Request
Responses
- 200
- 401
- 403
- 404
- 500
Dirección actualizada correctamente. Devuelve el documento completo con los campos de ubicación recalculados si se proporcionó addressGoogleMaps
Response Headers
Error de autenticación por token/JWT o estado de cuenta bloqueada
Response Headers
La dirección existe pero no pertenece al array addresses de la empresa del usuario autenticado
Response Headers
La dirección con el ID proporcionado no existe, el usuario del token no se encontró, o el tipo de cuenta no pudo resolverse.
Response Headers
Error inesperado durante la actualización de la dirección