Lugares de marcación
GET: Obtener locaciones de una compañía
Descripción del API
Este endpoint permite listar las locaciones asociadas a una compañía específica. Si el usuario no tiene permisos para acceder a la compañía, se devolverá un error.
Endpoint
GET /api/locations
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
Sin parámetros de entrada |
JSON de ejemplo (entrada)
{}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
id | integer | Identificador único de la locación | 101 |
name | string | Nombre de la locación | "Oficina Central" |
address | string | Dirección de la locación | "Av. Falsa 123, Ciudad Inventada" |
latitude | float | Latitud de la locación | -15.783472 |
longitude | float | Longitud de la locación | -47.929432 |
radius | integer | Radio en metros | 250 |
type_id | integer | ID del tipo de locación | 4 |
team_id | integer | ID del equipo asociado | 2020 |
user_home_id | integer | ID del usuario asociado a la locación | null |
description | string | Descripción de la locación | "Ubicación ficticia para pruebas" |
request_change_id | integer | ID del cambio solicitado | null |
created_at | timestamp | Fecha y hora de creación | "2024-12-01T10:00:00.000Z" |
updated_at | timestamp | Fecha y hora de última actualización | "2024-12-04T15:30:00.000Z" |
deleted_at | timestamp | Fecha y hora de eliminación | null |
Códigos de respuesta HTTP
- 200 OK: Lista de locaciones recuperada con éxito.
JSON de ejemplo (salida)
- Respuesta 200 OK:
[
{
"id": 101,
"name": "Oficina Central",
"address": "Av. Falsa 123, Ciudad Inventada",
"latitude": -15.783472,
"longitude": -47.929432,
"radius": 250,
"type_id": 4,
"team_id": 2020,
"user_home_id": null,
"description": "Ubicación ficticia para pruebas",
"request_change_id": null,
"created_at": "2024-12-01T10:00:00.000Z",
"updated_at": "2024-12-04T15:30:00.000Z",
"deleted_at": null
},
{
"id": 102,
"name": "Bodega Norte",
"address": "Calle Inventada 456, Pueblo Fantasía",
"latitude": -16.786432,
"longitude": -48.922312,
"radius": 300,
"type_id": 5,
"team_id": 2020,
"user_home_id": 3033,
"description": "Almacén de soporte temporal",
"request_change_id": null,
"created_at": "2024-11-28T08:00:00.000Z",
"updated_at": "2024-12-02T13:00:00.000Z",
"deleted_at": null
}
]
POST: Crear una nueva locación
Descripción del API
Este endpoint permite crear una nueva locación asociada a una compañía. Es necesario contar con los permisos correspondientes para realizar esta operación.
Endpoint
POST /api/locations
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
name | Sí | string | Nombre de la locación | "Oficina Central" |
address | No | string | Dirección de la locación | "Av. Falsa 123, Ciudad Inventada" |
latitude | No | float | Latitud de la locación | -15.783472 |
longitude | No | float | Longitud de la locación | -47.929432 |
radius | Sí | integer | Radio en metros | 250 |
type_id | Sí | integer | ID del tipo de locación | 4 |
JSON de ejemplo (entrada)
{
"name": "Oficina Central",
"address": "Av. Falsa 123, Ciudad Inventada",
"latitude": -15.783472,
"longitude": -47.929432,
"radius": 250,
"type_id": 4
}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | string | Estado del resultado de la operación | "success" |
message | string | Mensaje informativo sobre la operación | "Location created successfully" |
id | integer | Identificador único de la nueva locación creada | 101 |
Código de respuesta HTTP
- 201 Created: Locación creada con éxito.
JSON de ejemplo (salida)
{
"status": "success",
"message": "Ubicación guardada exitosamente.",
"id": 101
}
PUT: Modificar los datos de una locación existente
Descripción del API
Este endpoint permite actualizar los datos de una locación existente. Si el usuario no tiene permisos para modificar la locación, se devolverá un error.
Endpoint
PUT /api/locations/{id}
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
name | opcional | string | Nombre de la locación | "Oficina Central" |
address | opcional | string | Dirección de la locación | "Av. Falsa 123, Ciudad Inventada" |
latitude | opcional | float | Latitud de la locación | -15.783472 |
longitude | opcional | float | Longitud de la locación | -47.929432 |
radius | opcional | integer | Radio en metros | 250 |
type_id | opcional | integer | ID del tipo de locación | 4 |
JSON de ejemplo (entrada)
{
"name": "Oficina Central",
"address": "Av. Falsa 123, Ciudad Inventada",
"latitude": -15.783472,
"longitude": -47.929432,
"radius": 250,
"type_id": 4
}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | string | Estado del resultado de la operación | "success" |
message | string | Mensaje informativo sobre la operación | "Location updated successfully" |
id | integer | Identificador único de la locación actualizada | 101 |
Código de respuesta HTTP
- 200 OK: Locación actualizada con éxito.
JSON de ejemplo (salida)
{
"status": "success",
"message": "Location updated successfully",
"id": 101
}
DELETE: Eliminar una locación
Descripción del API
Este endpoint permite eliminar una locación existente. Si la locación no se encuentra o el usuario no tiene permisos para eliminarla, se devolverá un error.
Endpoint
DELETE /api/locations/{id}
Parámetros de entrada
Atributo | Requerido | Tipo | Descripción | Ejemplo |
---|---|---|---|---|
id | Requerido | integer | Identificador único de la locación a eliminar | 101 |
JSON de ejemplo (entrada)
{}
Parámetros de salida
Atributo | Tipo | Descripción | Ejemplo |
---|---|---|---|
status | string | Estado del resultado de la operación | "success" |
message | string | Mensaje informativo sobre la operación | "Location deleted successfully" |
JSON de ejemplo (salida)
{
"status": "success",
"message": "Location deleted successfully"
}