chore: sync local project state
This commit is contained in:
47
scripts/sub2api-bridge.sh
Normal file
47
scripts/sub2api-bridge.sh
Normal file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SUPPLY_URL="${SUPPLY_URL:-http://127.0.0.1:8081}"
|
||||
CONSUMER="${CONSUMER:-sub2api-bridge}"
|
||||
CURSOR=""
|
||||
|
||||
# Create bridge log table in sub2api database
|
||||
docker exec sub2api-postgres psql -U sub2api -d sub2api -c "
|
||||
CREATE TABLE IF NOT EXISTS supply_bridge_log (
|
||||
id SERIAL PRIMARY KEY,
|
||||
event_id TEXT NOT NULL,
|
||||
package_id BIGINT,
|
||||
status TEXT,
|
||||
result TEXT,
|
||||
detail TEXT,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);" 2>/dev/null || true
|
||||
|
||||
while true; do
|
||||
RESP=$(curl -fsS -X POST "${SUPPLY_URL}/internal/supply-intelligence/gateway/consume-once?consumer=${CONSUMER}&cursor=${CURSOR}" 2>/dev/null || echo '{}')
|
||||
NEXT_CURSOR=$(echo "$RESP" | jq -r '.next_cursor // empty')
|
||||
ITEMS_LEN=$(echo "$RESP" | jq '.items | length')
|
||||
|
||||
if [ "$ITEMS_LEN" -eq 0 ]; then
|
||||
sleep 10
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "$RESP" | jq -c '.items[]' | while read -r item; do
|
||||
EVENT_ID=$(echo "$item" | jq -r '.event_id')
|
||||
PKG_ID=$(echo "$item" | jq -r '.package_id')
|
||||
STATUS=$(echo "$item" | jq -r '.gateway_sync_status')
|
||||
RESULT=$(echo "$item" | jq -r '.result')
|
||||
DETAIL=$(echo "$item" | jq -r '.detail // empty')
|
||||
echo "$(date -Is) bridge event=$EVENT_ID package=$PKG_ID status=$STATUS result=$RESULT"
|
||||
|
||||
# Insert into sub2api database
|
||||
docker exec sub2api-postgres psql -U sub2api -d sub2api -c \
|
||||
"INSERT INTO supply_bridge_log (event_id, package_id, status, result, detail) VALUES ('$EVENT_ID', $PKG_ID, '$STATUS', '$RESULT', '$DETAIL');" 2>/dev/null || true
|
||||
done
|
||||
|
||||
CURSOR="$NEXT_CURSOR"
|
||||
if [ -z "$CURSOR" ]; then
|
||||
sleep 10
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user