Selaa lähdekoodia

chore: add scripts, add varying mqtt client id

master
Blaz Smehov 2 viikkoa sitten
vanhempi
commit
1b4af10508
5 muutettua tiedostoa jossa 85 lisäystä ja 1 poistoa
  1. +5
    -1
      cmd/bridge/main.go
  2. +1
    -0
      go.mod
  3. +2
    -0
      go.sum
  4. +16
    -0
      scripts/adddecoder.sh
  5. +61
    -0
      scripts/tracks.sh

+ 5
- 1
cmd/bridge/main.go Näytä tiedosto

@@ -18,6 +18,7 @@ import (
"github.com/AFASystems/presence/internal/pkg/logger"
"github.com/AFASystems/presence/internal/pkg/model"
mqtt "github.com/eclipse/paho.mqtt.golang"
"github.com/google/uuid"
"github.com/segmentio/kafka-go"
)

@@ -126,7 +127,10 @@ func main() {

opts := mqtt.NewClientOptions()
opts.AddBroker(fmt.Sprintf("tcp://%s:%d", cfg.MQTTHost, 1883))
opts.SetClientID("go_mqtt_client")

cId := fmt.Sprintf("bridge-%s", uuid.New().String())

opts.SetClientID(cId)
opts.SetAutoReconnect(true)
opts.SetConnectRetry(true)
opts.SetConnectRetryInterval(1 * time.Second)


+ 1
- 0
go.mod Näytä tiedosto

@@ -20,6 +20,7 @@ require (
github.com/eclipse/paho.golang v0.23.0 // indirect
github.com/eclipse/paho.mqtt.golang v1.5.1 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/pgx/v5 v5.6.0 // indirect


+ 2
- 0
go.sum Näytä tiedosto

@@ -17,6 +17,8 @@ github.com/eclipse/paho.mqtt.golang v1.5.1 h1:/VSOv3oDLlpqR2Epjn1Q7b2bSTplJIeV2I
github.com/eclipse/paho.mqtt.golang v1.5.1/go.mod h1:1/yJCneuyOoCOzKSsOTUc0AJfpsItBGWvYpBLimhArU=
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE=
github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w=
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=


+ 16
- 0
scripts/adddecoder.sh Näytä tiedosto

@@ -0,0 +1,16 @@
#!/bin/bash

SERVER_URL="http://localhost:1902"

curl -X POST "${SERVER_URL}/configs/beacons" \
-H "Content-Type: application/json" \
-d '{
"name": "Eddystone",
"min": 4,
"max": 255,
"pattern": ["0x16", "0xAA", "0xFE", "0x20"],
"configs": {
"battery": {"offset": 6, "length": 2, "order": "bigendian"},
"temperature": {"offset": 8, "length": 2, "order": "fixedpoint"}
}
}'

+ 61
- 0
scripts/tracks.sh Näytä tiedosto

@@ -0,0 +1,61 @@
#!/bin/bash

# Server URL
SERVER_URL="http://localhost:1902"
TRACKER_UUID="1a6c6f1e-9a3d-4a66-9f0b-6d5f0e1c1a01"
echo "==================================="
echo "Tracks API Query Examples"
echo "==================================="
echo ""

echo "1. Basic query (default: last 10 tracks from last 24 hours):"
echo "GET /reslevis/getTracks/${TRACKER_UUID}"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}" | jq '.'
echo -e "\n"

echo "2. Get last 50 tracks:"
echo "GET /reslevis/getTracks/${TRACKER_UUID}?limit=50"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?limit=50" | jq '.'
echo -e "\n"

echo "3. Get tracks from the last 7 days (limit 20):"
FROM_DATE=$(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ)
TO_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "GET /reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=20"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=20" | jq '.'
echo -e "\n"

echo "4. Get tracks from a specific date range:"
FROM_DATE="2026-01-20T00:00:00Z"
TO_DATE="2026-01-21T23:59:59Z"
echo "GET /reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=10"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=100" | jq '.'
echo -e "\n"

echo "5. Get tracks from today only:"
FROM_DATE=$(date -u -d 'today 00:00:00' +%Y-%m-%dT%H:%M:%SZ)
TO_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "GET /reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=10"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}" | jq '.'
echo -e "\n"

echo "6. Get tracks from the last hour:"
FROM_DATE=$(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)
TO_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "GET /reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=5"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?from=${FROM_DATE}&to=${TO_DATE}&limit=5" | jq '.'
echo -e "\n"

echo "7. Raw JSON output (no jq formatting):"
curl -s -X GET "${SERVER_URL}/reslevis/getTracks/${TRACKER_UUID}?limit=2"
echo -e "\n"

echo "==================================="
echo "Query Parameters Summary:"
echo "==================================="
echo "limit - Maximum number of tracks to return (default: 10)"
echo "from - Start timestamp in RFC3339 format (default: 24 hours ago)"
echo "to - End timestamp in RFC3339 format (default: now)"
echo ""
echo "Note: Replace '${TRACKER_UUID}' with an actual tracker UUID"
echo " You can get tracker UUIDs from: GET /reslevis/getTrackers"

Ladataan…
Peruuta
Tallenna