48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/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
|