#!/usr/bin/env bash
# debug_balance_curl.sh — Debug check_balance API (verbose + timeout)
# Usage: bash debug_balance_curl.sh
set -u

ENDPOINT="http://10.38.31.92:8001/api/v1/ocs_new/getMainBalance"
PARTNER_ID="3ED2E2550C574D4FE0636B1F260A1EAA"
ISDN_ENC="QKfsfcoXvWqw6P2P5jZozg=="
TX_ID="$(date +%Y%m%d%H%M%S)"

echo "================================================================"
echo "[1] TCP reachability"
echo "================================================================"
timeout 5 bash -c "echo > /dev/tcp/10.38.31.92/8001" 2>&1 && echo "  ✓ TCP 10.38.31.92:8001 OK" || echo "  ✗ TCP fail"

echo
echo "================================================================"
echo "[2] curl -v with 15s timeout (xem response headers)"
echo "================================================================"
curl -v --max-time 15 --connect-timeout 5 \
    --location "${ENDPOINT}" \
    --header "Partner-Id: ${PARTNER_ID}" \
    --header "Content-Type: application/json" \
    --data "{
    \"transactionId\": \"${TX_ID}\",
    \"accountID\": \"${ISDN_ENC}\",
    \"queryBundle\": \"Y\",
    \"queryFF\": \"Y\",
    \"querySubscriberInfo\": \"Y\"
}" 2>&1
EXIT=$?
echo
echo "================================================================"
echo "curl exit code: $EXIT"
echo "  0=OK, 28=timeout, 7=connect refused, 56=recv fail, 52=empty reply"
echo "================================================================"

echo
echo "================================================================"
echo "[3] Thử OPTIONS để xem server có response ở method khác không"
echo "================================================================"
curl -v --max-time 5 -X OPTIONS "http://10.38.31.92:8001/" 2>&1 | head -20

echo
echo "================================================================"
echo "[4] Thử HTTPS xem server có chạy TLS không"
echo "================================================================"
curl -v -k --max-time 5 "https://10.38.31.92:8001/" 2>&1 | head -10
