104 lines
2.4 KiB
Bash
Executable File
104 lines
2.4 KiB
Bash
Executable File
#!/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."
|