Skip to main content

Create App Location Event

Endpoint que permite delimitar una sección geográfica y asociarla a una aplicación (dada por el campo app_id), registrando una acción que se ejecutará cuando la aplicación genere algún reporte de posición en esa sección. El conjunto de información sección/acción se denomina como evento, el cual queda almacenado en el servicio y es monitoreado en segundo plano por el servicio. Para que se registre adecuadamente el evento, se debe respetar la composición del cuerpo de la solicitud.

Endpoint

Headers

KeyValueDescription
Content-Typeapplication/json
AuthorizationBearer {{access_token}}access_token obtained in Atenea
Method: POST
URL: https://api.trust.lat/lighthouse/api/v1/event
caution

Recuerda que para utilizar este endpoint es necesario un access token obtenido en el servicio Atenea.

Como obtener un access token

Body

Fields

  • listener_type: Texto que indica que tipo de interacción activa al evento. En este caso, el valor de este campo debe ser app_location. Obligatorio.
  • app_id: Identificador de aplicación provisto por empresa Trust. Obligatorio.
  • company_id: Identificador de compañia provisto por empresa Trust. Obligatorio.
  • location: Estructura que permite definir la sección geográfica. Obligatorio.
    • type: Texto que indica el tipo de perímetro utilizado para delimitar la sección. Actualmente solo se encuentra operativo el valor square. Obligatorio.
    • lat_point_1: Latitud del primer punto de referencia. Obligatorio.
    • lng_point_1: Longitud del primer punto de referencia. Obligatorio.
    • lat_point_2: Latitud del segundo punto de referencia. Obligatorio.
    • lng_point_2: Longitud del segundo punto de referencia. Obligatorio.
    • inner_space: Variable booleana que indica si se debe considerar el área contenida por el perímetro de la sección. Opcional.
  • action: Estructura que contiene la información sobre la acción a ejecutar cuando se active un evento. Obligatorio.
    • external_action: Variable booleana que indica si la acción debe ser manejada por un servicio externo o por este servicio. Actualmente solo se encuentran implementadas las acciones externas, así que el valor de este campo debe ser true. Obligatorio.
    • callback_type: Variable que indica que tipo de función se lleva a cabo cuando se activa un evento. Actualmente sólo se permite como valor webhook Obligatorio.
    • callback_url: Dirección URL a la que se envía un aviso de la activación del evento. Obligatorio.
    • delete_after_action: Valor booleano que indica si el evento debe eliminarse al finalizar su activación. Si el valor es falso, el evento se ejecutará hasta que sea eliminado de forma manual. Opcional.

Example

{
"listener_type": "app_location",
"app_id": "99",
"company_id": "99",
"location": {
"type": "square",
"lat_point_1": -34.04168267,
"lng_point_1": -70.39076881,
"lat_point_2": -32.04168267,
"lng_point_2": -72.39076881,
"inner_space": true
},
"action": {
"external_action": true,
"callback_type": "webhook",
"callback_url": "https://webhook.site/11111111-1111-1111-1111-111111111111",
"delete_after_action": true
}
}

callback_url

Como se menciona anteriormente, este campo almacena una url que se utiliza para avisar al backend del integrador que un evento registrado ha sido detectado. Este aviso se realiza en forma de una solicitud web, llamada que se realiza en un formato similar al siguiente:

curl --location --request POST 'callback_url' \
--header 'Content-Type: application/json' \
--data-raw '{
"event_id": "ffffffff-ffff-ffff-ffff-ffffffffffff",
"room_id": "",
"callback_url": "https://webhook.site/11111111-1111-1111-1111-111111111111",
"callback_type": "webhook",
"data": {
"trust_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}
}'
caution

El endpoint que se asigne en el campo callback_url debe ser capaz de tolerar un alto nivel de llamadas paralelas

Code Examples

curl --location --request POST 'https://api.trust.lat/lighthouse/api/v1/event' \
--header 'Authorization: Bearer *********' \
--header 'Content-Type: application/json' \
--data-raw '{
"listener_type": "app_location",
"app_id": "99",
"company_id": "99",
"location": {
"type": "square",
"lat_point_1": -34.04168267,
"lng_point_1": -70.39076881,
"lat_point_2": -32.04168267,
"lng_point_2": -72.39076881,
"inner_space": true
},
"action": {
"external_action": true,
"callback_type": "webhook",
"callback_url": "https://webhook.site/11111111-1111-1111-1111-111111111111",
"delete_after_action": true
}
}'

Responses

HTTP Code: 201 Created

Event registered successfully

{
"status": "Created",
"value": {
"event_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"listener_type": "app_location",
"company_id": "99",
"app_id": "99"
}
}

HTTP Code: 422 Unprocessable Entity

App_id missing

{
"code": 422,
"message": "Validation fail",
"errors": {
"text": "Problem with app_location event type",
"data": null,
"data2": null,
"validations": {
"app_id": "app_id not present"
}
}
}