client-finder/scripts/skill-run-uat.sh

104 lines
2.4 KiB
Bash
Raw Permalink Normal View History

2026-03-11 23:36:43 +00:00
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
SKILL_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
SKILL_ENV_FILE="${SKILL_ENV_FILE:-$SKILL_ROOT/.env.local}"
if [ -f "$SKILL_ENV_FILE" ]; then
set -a
# shellcheck disable=SC1090
. "$SKILL_ENV_FILE"
set +a
fi
# Client-finder UAT (skill-credit + run-flow)
#
# Required env in live mode:
# AUTH_BASE, CLIENT_KEY
#
# Optional env:
# QUERY, COUNTRY
#
# Examples:
# AUTH_BASE=https://api-gw-test.yuanwei-lnc.com CLIENT_KEY=sk_xxx ./skill-run-uat.sh
# AUTH_BASE=https://api-gw-test.yuanwei-lnc.com CLIENT_KEY=sk_xxx QUERY="office machine in US" ./skill-run-uat.sh --live
AUTH_BASE="${AUTH_BASE:-}"
CLIENT_KEY="${CLIENT_KEY:-}"
QUERY="${QUERY:-office machine in US}"
COUNTRY="${COUNTRY:-us}"
LIVE=0
if [ "${1:-}" = "--live" ]; then
LIVE=1
fi
if [ "$LIVE" -eq 1 ]; then
if [ -z "$AUTH_BASE" ] || [ -z "$CLIENT_KEY" ]; then
echo "Missing env: AUTH_BASE and CLIENT_KEY are required in --live mode."
exit 1
fi
fi
json_get() {
local raw="$1"
local key="$2"
python3 - "$raw" "$key" <<'PY'
import json, sys
raw = sys.argv[1]
key = sys.argv[2]
try:
data = json.loads(raw)
except Exception:
print("")
raise SystemExit(0)
val = data.get(key, "")
if val is None:
val = ""
print(val)
PY
}
echo "== Client-finder UAT =="
echo "QUERY=$QUERY"
echo "COUNTRY=$COUNTRY"
if [ "$LIVE" -eq 0 ]; then
echo "Mode: dry-run (no network request)"
cat <<EOF
1) Exchange session token
curl -X POST "\$AUTH_BASE/auth/skill-credit/session" \\
-H "Content-Type: application/json" \\
-d '{"clientKey":"\$CLIENT_KEY"}'
2) Start cold outreach flow
curl -X POST "\$AUTH_BASE/ecom/cold-outreach/run-flow" \\
-H "Authorization: Bearer <ACCESS_TOKEN>" \\
-H "Content-Type: application/json" \\
-d '{"query":"$QUERY","country":"$COUNTRY"}'
EOF
exit 0
fi
SESSION_JSON="$(curl -s -X POST "$AUTH_BASE/auth/skill-credit/session" \
-H "Content-Type: application/json" \
-d "{\"clientKey\":\"$CLIENT_KEY\"}")"
ACCESS_TOKEN="$(json_get "$SESSION_JSON" "accessToken")"
if [ -z "$ACCESS_TOKEN" ]; then
echo "Session exchange failed: $SESSION_JSON"
exit 1
fi
echo "Session OK."
RUN_JSON="$(curl -s -X POST "$AUTH_BASE/ecom/cold-outreach/run-flow" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"query\":\"$QUERY\",\"country\":\"$COUNTRY\"}")"
echo "Run-flow response:"
echo "$RUN_JSON"
echo "UAT completed."