#!/usr/bin/env bash set -euo pipefail keycloak_url="${KEYCLOAK_URL:-http://localhost:8081}" backend_url="${BACKEND_URL:-http://localhost:8080}" curl --fail --silent --show-error "${backend_url}/actuator/health" | jq . for username in employee manager admin hr; do case "${username}" in employee) password='Employee123!' ;; manager) password='Manager123!' ;; admin) password='Admin123!' ;; hr) password='HrReviewer123!' ;; esac token="$({ curl --fail --silent --show-error \ -X POST "${keycloak_url}/realms/aioa/protocol/openid-connect/token" \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode client_id=aioa-mobile \ --data-urlencode grant_type=password \ --data-urlencode username="${username}" \ --data-urlencode password="${password}" } | jq -r .access_token)" case "${username}" in employee) device_id='10000000-0000-4000-8000-000000000001' ;; manager) device_id='10000000-0000-4000-8000-000000000002' ;; admin) device_id='10000000-0000-4000-8000-000000000003' ;; hr) device_id='10000000-0000-4000-8000-000000000004' ;; esac curl --fail --silent --show-error \ -X POST "${backend_url}/api/v1/devices/register" \ -H "Authorization: Bearer ${token}" \ -H 'Content-Type: application/json' \ --data "{\"id\":\"${device_id}\",\"name\":\"Local auth verifier (${username})\",\"platform\":\"OTHER\",\"appVersion\":\"script\"}" \ >/dev/null printf '%s\n' "${username}" curl --fail --silent --show-error \ "${backend_url}/api/v1/me" \ -H "Authorization: Bearer ${token}" \ -H "X-AIOA-Device-Id: ${device_id}" | jq . done