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

: "${OHDA_BASE_URL:?Set OHDA_BASE_URL, e.g. https://api.example.com}"
: "${OHDA_IDENTIFIER:?Set OHDA_IDENTIFIER}"
: "${OHDA_PASSWORD:?Set OHDA_PASSWORD}"

echo "[1/3] Health"
curl --fail --silent --show-error "${OHDA_BASE_URL}/health"
echo

echo "[2/3] Login"
LOGIN_RESPONSE="$(curl --fail --silent --show-error \
  -X POST "${OHDA_BASE_URL}/api/v1/auth/login" \
  -H 'Content-Type: application/json' \
  --data "{\"identifier\":\"${OHDA_IDENTIFIER}\",\"password\":\"${OHDA_PASSWORD}\",\"device_name\":\"cPanel smoke test\"}")"

TOKEN="$(printf '%s' "$LOGIN_RESPONSE" | sed -n 's/.*"token":"\([^"]*\)".*/\1/p')"
if [ -z "$TOKEN" ]; then
  echo "Login did not return a token."
  printf '%s\n' "$LOGIN_RESPONSE"
  exit 1
fi

echo "[3/3] Current user and dashboard"
curl --fail --silent --show-error "${OHDA_BASE_URL}/api/v1/me" -H "Authorization: Bearer ${TOKEN}"
echo
curl --fail --silent --show-error "${OHDA_BASE_URL}/api/v1/dashboard" -H "Authorization: Bearer ${TOKEN}"
echo
echo "Smoke test passed."
