Arrived by GPS
POST
{{server}}/api/v1/smart/ticket/arrivedThis endpoint is used to notify the server that a reserved smart ticket has arrived at a specific GPS location.
Request
-
gps(object, required) - The GPS coordinates of the smart ticket's current location.-
latitude(number, required) - The latitude of the location. -
longitude(number, required) - The longitude of the location.
-
Response
It returns 204 if the check was success.
Request
Authorization
| Header | Value |
|---|---|
Authorization | SmartToken {{smartToken}} |
Headers
| Key | Value |
|---|---|
Accept | application/json |
Body (json)
{
"gps": {
"latitude": 47.448782,
"longitude": 19.01472
}
}
Code snippets
- cURL
- JavaScript
- Python
curl -X POST '{{server}}/api/v1/smart/ticket/arrived' \
-H 'Accept: application/json' \
-H 'Authorization: SmartToken {{smartToken}}' \
-H 'Content-Type: application/json' \
-d '{
"gps": {
"latitude": 47.448782,
"longitude": 19.01472
}
}'
const response = await fetch("{{server}}/api/v1/smart/ticket/arrived", {
method: "POST",
headers: {
"Accept": "application/json",
"Authorization": "SmartToken {{smartToken}}",
"Content-Type": "application/json"
},
body: JSON.stringify({
"gps": {
"latitude": 47.448782,
"longitude": 19.01472
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = "{{server}}/api/v1/smart/ticket/arrived"
headers = {
"Accept": "application/json",
"Authorization": "SmartToken {{smartToken}}",
"Content-Type": "application/json"
}
payload = {
"gps": {
"latitude": 47.448782,
"longitude": 19.01472
}
}
response = requests.post(url, headers=headers, json=payload)
print(response.status_code)
print(response.json())
Examples (2)
- Successful
- Too far
Example request
POST
{{server}}/api/v1/smart/ticket/arrivedHeaders (1)
| Key | Value |
|---|---|
Accept | application/json |
Body
{
"gps": {
"latitude": 47.448782,
"longitude": 19.01472
}
}
Example response 204 No Content
No response body
Example request
POST
{{server}}/api/v1/smart/ticket/arrivedHeaders (1)
| Key | Value |
|---|---|
Accept | application/json |
Body
{
"gps": {
"latitude": 37.448782,
"longitude": 19.01472
}
}
Example response 400 Bad Request
Response headers (9)
| Key | Value |
|---|---|
Access-Control-Expose-Headers | * |
Cache-Control | no-store, no-cache, must-revalidate |
Access-Control-Allow-Origin | * |
Access-Control-Allow-Methods | POST, PUT, GET, OPTIONS, DELETE |
Access-Control-Allow-Credentials | true |
Content-Length | 2904 |
Access-Control-Max-Age | 86400 |
Access-Control-Allow-Headers | Content-Type, Authorization, X-Requested-With |
Content-Type | application/json;charset=utf-8 |
Body
{
"name": "ReservedArrivedTooFar",
"message": "Your position is too far away!",
"nodeID": "norbi-pc3-27728",
"code": 400,
"type": "TOO_FAR",
"retryable": false,
"stack": "services.moleculer.error.MoleculerClientError: Your position is too far away!\r\n\tat com.qnet7.core.ErrorFactory.reservedArrivedTooFar(ErrorFactory.java:289)\r\n\tat com.qnet7.published.v1.PublishedServiceV1.lambda$16(PublishedServiceV1.java:582)\r\n\tat io.datatree.Promise.lambda$0(Promise.java:403)\r\n\tat java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:836)\r\n\tat java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:848)\r\n\tat java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2168)\r\n\tat io.datatree.Promise.then(Promise.java:398)\r\n\tat com.qnet7.published.v1.PublishedServiceV1.lambda$15(PublishedServiceV1.java:571)\r\n\tat io.datatree.Promise.lambda$0(Promise.java:403)\r\n\tat java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:836)\r\n\tat java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:848)\r\n\tat java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2168)\r\n\tat io.datatree.Promise.then(Promise.java:398)\r\n\tat com.qnet7.published.v1.PublishedServiceV1.reservedArrivedByGPS(PublishedServiceV1.java:555)\r\n\tat com.qnet7.published.v1.SmartTicket.lambda$12(SmartTicket.java:314)\r\n\tat services.moleculer.service.LocalActionEndpoint.lambda$0(LocalActionEndpoint.java:90)\r\n\tat com.qnet7.acl.ActionPermissionController.lambda$null$2(ActionPermissionController.java:262)\r\n\tat io.datatree.Promise.lambda$0(Promise.java:403)\r\n\tat java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:836)\r\n\tat java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:848)\r\n\tat java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2168)\r\n\tat io.datatree.Promise.then(Promise.java:398)\r\n\tat com.qnet7.acl.ActionPermissionController.lambda$install$3(ActionPermissionController.java:246)\r\n\tat services.moleculer.metrics.MetricMiddleware$1.lambda$0(MetricMiddleware.java:74)\r\n\tat io.datatree.Promise.<init>(Promise.java:261)\r\n\tat services.moleculer.metrics.MetricMiddleware$1.handler(MetricMiddleware.java:59)\r\n\tat services.moleculer.service.ActionEndpoint.handler(ActionEndpoint.java:85)\r\n\tat services.moleculer.service.DefaultServiceInvoker.call(DefaultServiceInvoker.java:132)\r\n\tat services.moleculer.service.DefaultServiceInvoker.call(DefaultServiceInvoker.java:123)\r\n\tat services.moleculer.web.router.ActionInvoker.lambda$8(ActionInvoker.java:286)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:748)",
"data": {
"distance": 1111.9492664455872
}
}