#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=csfzx-common.sh
source "${SCRIPT_DIR}/csfzx-common.sh"

DOMAIN="${DOMAIN:-csfzx.yyangpt.cn}"
HTTPS_BASE="${HTTPS_BASE:-https://${DOMAIN}}"
PROXY_TARGETS="${PROXY_TARGETS:-mp.weixin.qq.com api.weixin.qq.com open.weixin.qq.com api.coze.cn ark.cn-beijing.volces.com api-knowledgebase.mlp.cn-beijing.volces.com api-vikingdb.vikingdb.cn-beijing.volces.com}"
PROXIES="${PROXIES:-http://192.212.55.63:3128 http://192.212.55.64:3128}"

log "Nginx 域名正式访问验证"
for url in \
  "${HTTPS_BASE}/dist/#/login" \
  "${HTTPS_BASE}/aizhct/index.php?s=/api/restaurant/areaList"; do
  echo "URL=$url"
  curl -k -sS -o /dev/null --max-time 20 -w 'HTTP=%{http_code} REMOTE=%{remote_ip} TIME=%{time_total}\n' "$url" || true
done

log "外部服务直连验证"
for host in $PROXY_TARGETS; do
  scheme=https
  case "$host" in
    api-knowledgebase.mlp.cn-beijing.volces.com) scheme=http ;;
  esac
  url="${scheme}://${host}"
  printf 'DIRECT %-60s ' "$url"
  curl -k -I -L --max-time 15 -sS -o /dev/null -w 'HTTP=%{http_code} REMOTE=%{remote_ip} TIME=%{time_total}\n' "$url" || echo "FAIL"
done

log "外部服务代理验证"
for proxy in $PROXIES; do
  echo "PROXY=$proxy"
  for host in $PROXY_TARGETS; do
    scheme=https
    case "$host" in
      api-knowledgebase.mlp.cn-beijing.volces.com) scheme=http ;;
    esac
    url="${scheme}://${host}"
    printf '  %-58s ' "$url"
    curl -x "$proxy" -k -I -L --connect-timeout 8 --max-time 20 -sS -o /dev/null -w 'HTTP=%{http_code} REMOTE=%{remote_ip} LOCAL=%{local_ip} TIME=%{time_total}\n' "$url" || echo "FAIL"
  done
done
