You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

83 rivejä
3.0 KiB

  1. #!/bin/bash
  2. # Tracks API query examples.
  3. #
  4. # Two endpoints are available:
  5. #
  6. # GET /reslevis/getTracks/{uuid}
  7. # Returns historical track records for a single tracker.
  8. # Query params:
  9. # limit - max records to return (default: 10)
  10. # from - start of time window, RFC3339 (default: 24 h ago)
  11. # to - end of time window, RFC3339 (default: now)
  12. #
  13. # GET /reslevis/getTracks
  14. # Returns the single latest track record for every known tracker.
  15. # Useful for a "current positions" overview.
  16. # Query params:
  17. # limit - max trackers to return (default: 100)
  18. # offset - number of trackers to skip, for paging (default: 0)
  19. #
  20. # Usage:
  21. # ./api/tracks.sh [TRACKER_UUID]
  22. # BASE_URL=http://host:port ./api/tracks.sh [TRACKER_UUID]
  23. #
  24. # Get tracker UUIDs from: GET /reslevis/getTrackers
  25. set -e
  26. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  27. . "${SCRIPT_DIR}/../_common.sh"
  28. TRACKER_UUID="${1:-1a6c6f1e-9a3d-4a66-9f0b-6d5f0e1c1a01}"
  29. echo "==================================="
  30. echo "Single-tracker history: GET /reslevis/getTracks/{uuid}"
  31. echo "==================================="
  32. echo ""
  33. # Default call — returns last 10 records from the past 24 hours.
  34. echo "1. Basic query (default: last 10 tracks from the last 24 hours):"
  35. curl -s -X GET "${BASE_URL}/reslevis/getTracks/${TRACKER_UUID}" | jq '.'
  36. echo -e "\n"
  37. # Raise the limit to retrieve more records in a single call.
  38. echo "2. Get last 50 tracks (raise limit):"
  39. curl -s -X GET "${BASE_URL}/reslevis/getTracks/${TRACKER_UUID}?limit=50" | jq '.'
  40. echo -e "\n"
  41. # Explicit time window — both from and to accept RFC3339 timestamps.
  42. # The date command falls back gracefully between GNU/Linux (-d) and macOS (-v).
  43. TO_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
  44. echo "date ${TO_DATE}"
  45. FROM_DATE=$(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ 2>/dev/null \
  46. || date -u -v-7d +%Y-%m-%dT%H:%M:%SZ 2>/dev/null \
  47. || echo "2020-01-01T00:00:00Z")
  48. echo "date ${FROM_DATE}"
  49. echo "3. Get up to 20 tracks from the last 7 days (explicit time window):"
  50. echo " from=${FROM_DATE} to=${TO_DATE}"
  51. curl -s -X GET "${BASE_URL}/reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=20" | jq '.'
  52. echo -e "\n"
  53. echo "==================================="
  54. echo "All-trackers latest positions: GET /reslevis/getTracks"
  55. echo "==================================="
  56. echo ""
  57. # No parameters — returns the most recent record for each tracker, up to 100.
  58. echo "4. All latest positions (default limit=100, offset=0):"
  59. curl -s -X GET "${BASE_URL}/reslevis/getTracks" | jq '.'
  60. echo -e "\n"
  61. # Reduce the page size to 5 — useful when there are many trackers.
  62. echo "5. First page — limit to 5 trackers:"
  63. curl -s -X GET "${BASE_URL}/reslevis/getTracks?limit=5&offset=0" | jq '.'
  64. echo -e "\n"
  65. # Move to the second page by setting offset=5.
  66. echo "6. Second page — next 5 trackers (offset=5):"
  67. curl -s -X GET "${BASE_URL}/reslevis/getTracks?limit=5&offset=5" | jq '.'
  68. echo -e "\n"
  69. echo "==================================="
  70. echo "Done."
  71. echo "==================================="