#!/usr/bin/env bash
# S.S. Travels partner API logs from the command line.
#   Partners:  export SST_API_KEY=sstp_...        (sees only your own requests)
#   Staff:     export SST_ADMIN_KEY=...  or  export SST_STAFF_TOKEN=<Supabase access token>
#   Usage:     ./partner-logs.sh [--errors] [--from DD-MM-YYYY] [--to DD-MM-YYYY] [--partner CODE] [--limit N] [--xml]
#              ./partner-logs.sh --id <log-id>      # stored request/response XML for one call
set -euo pipefail
BASE="${SST_BASE_URL:-https://client18-sstravels-hyderabad-india.panyacomputech.com}"
FORMAT=text; ID=""; QS=""
while [ $# -gt 0 ]; do
  case "$1" in
    --errors) QS="$QS&errors=1" ;;
    --from) QS="$QS&from=$2"; shift ;;
    --to) QS="$QS&to=$2"; shift ;;
    --partner) QS="$QS&partner=$2"; shift ;;
    --limit) QS="$QS&limit=$2"; shift ;;
    --xml) FORMAT=xml ;;
    --id) ID="$2"; shift ;;
    -h|--help) sed -n '2,7p' "$0"; exit 0 ;;
    *) echo "Unknown option $1" >&2; exit 2 ;;
  esac; shift
done
AUTH=()
if [ -n "${SST_ADMIN_KEY:-}" ]; then AUTH=(-H "X-Admin-Key: $SST_ADMIN_KEY")
elif [ -n "${SST_STAFF_TOKEN:-}" ]; then AUTH=(-H "Authorization: Bearer $SST_STAFF_TOKEN")
elif [ -n "${SST_API_KEY:-}" ]; then AUTH=(-H "X-API-Key: $SST_API_KEY")
else echo "Set SST_API_KEY (partner), SST_ADMIN_KEY or SST_STAFF_TOKEN" >&2; exit 2; fi
if [ -n "$ID" ]; then URL="$BASE/api/partner/logs/$ID?format=$FORMAT"; else URL="$BASE/api/partner/logs?format=$FORMAT$QS"; fi
curl -sS --fail-with-body "${AUTH[@]}" "$URL"
