All checks were successful
continuous-integration/drone/push Build is passing
118 lines
4.0 KiB
Bash
Executable File
118 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Women Safety App - Gateway API Testing Script (Simplified)
|
||
# This version sends all requests through API Gateway
|
||
|
||
# Colors for output
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
echo -e "${BLUE}=======================================${NC}"
|
||
echo -e "${BLUE}🔍 Women Safety App Gateway API Test ${NC}"
|
||
echo -e "${BLUE}=======================================${NC}"
|
||
|
||
# Base URL - все запросы идут через API Gateway
|
||
GATEWAY_URL="http://localhost:8000"
|
||
|
||
# Проверка, запущен ли API Gateway
|
||
echo -e "${YELLOW}🔎 Checking API Gateway...${NC}"
|
||
if curl -s "$GATEWAY_URL/api/v1/health" | grep -q "status.*healthy"; then
|
||
echo -e "${GREEN}✅ API Gateway is running${NC}"
|
||
else
|
||
echo -e "${RED}❌ API Gateway is not available. Make sure it's running before testing.${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# Регистрация пользователя
|
||
echo -e "\n${YELLOW}👤 Registering test user...${NC}"
|
||
# Создаем уникальное имя пользователя и email с временной меткой
|
||
TIMESTAMP=$(date +%s)
|
||
USERNAME="testgateway_${TIMESTAMP}"
|
||
EMAIL="testgateway_${TIMESTAMP}@example.com"
|
||
|
||
echo -e " └─ Using username: $USERNAME and email: $EMAIL"
|
||
|
||
REGISTER_RESPONSE=$(curl -s -X POST "$GATEWAY_URL/api/v1/auth/register" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "'"$USERNAME"'",
|
||
"email": "'"$EMAIL"'",
|
||
"password": "Test@1234",
|
||
"full_name": "Test Gateway User",
|
||
"phone_number": "+1234567890"
|
||
}')
|
||
|
||
echo "$REGISTER_RESPONSE" | jq
|
||
USER_ID=$(echo "$REGISTER_RESPONSE" | jq -r '.id')
|
||
|
||
# Авторизация
|
||
echo -e "\n${YELLOW}🔑 Logging in as test user...${NC}"
|
||
LOGIN_RESPONSE=$(curl -s -X POST "$GATEWAY_URL/api/v1/auth/login" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "'"$USERNAME"'",
|
||
"password": "Test@1234"
|
||
}')
|
||
|
||
echo "$LOGIN_RESPONSE" | jq
|
||
TOKEN=$(echo "$LOGIN_RESPONSE" | jq -r '.access_token')
|
||
|
||
if [ "$TOKEN" != "null" ] && [ -n "$TOKEN" ]; then
|
||
echo -e "${GREEN}✅ Login successful${NC}"
|
||
else
|
||
echo -e "${RED}❌ Login failed, stopping test${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# Получение информации о пользователе
|
||
echo -e "\n${YELLOW}👤 Getting user profile...${NC}"
|
||
curl -s -X GET "$GATEWAY_URL/api/v1/users/me" \
|
||
-H "Authorization: Bearer $TOKEN" | jq
|
||
|
||
# Обновление местоположения
|
||
echo -e "\n${YELLOW}📍 Updating location...${NC}"
|
||
curl -s -X POST "$GATEWAY_URL/api/v1/locations/update" \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer $TOKEN" \
|
||
-d '{
|
||
"latitude": 55.7558,
|
||
"longitude": 37.6173,
|
||
"accuracy": 5.0
|
||
}' | jq
|
||
|
||
# Создание экстренного оповещения
|
||
echo -e "\n${YELLOW}🚨 Creating emergency alert...${NC}"
|
||
ALERT_RESPONSE=$(curl -s -X POST "$GATEWAY_URL/api/v1/emergency/alerts" \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer $TOKEN" \
|
||
-d '{
|
||
"latitude": 55.7558,
|
||
"longitude": 37.6173,
|
||
"alert_type": "SOS",
|
||
"message": "Gateway test emergency alert"
|
||
}')
|
||
|
||
echo "$ALERT_RESPONSE" | jq
|
||
ALERT_ID=$(echo "$ALERT_RESPONSE" | jq -r '.id')
|
||
|
||
# Получение текущих оповещений
|
||
echo -e "\n${YELLOW}🔔 Getting active alerts...${NC}"
|
||
curl -s -X GET "$GATEWAY_URL/api/v1/emergency/alerts/my" \
|
||
-H "Authorization: Bearer $TOKEN" | jq
|
||
|
||
# Отмена оповещения
|
||
if [ "$ALERT_ID" != "null" ] && [ -n "$ALERT_ID" ]; then
|
||
echo -e "\n${YELLOW}🚫 Cancelling alert...${NC}"
|
||
curl -s -X PATCH "$GATEWAY_URL/api/v1/emergency/alerts/$ALERT_ID/cancel" \
|
||
-H "Authorization: Bearer $TOKEN" | jq
|
||
fi
|
||
|
||
# Проверка доступа к панели пользователя (комплексный запрос)
|
||
echo -e "\n${YELLOW}📊 Getting user dashboard...${NC}"
|
||
curl -s -X GET "$GATEWAY_URL/api/v1/users/dashboard" \
|
||
-H "Authorization: Bearer $TOKEN" | jq
|
||
|
||
echo -e "\n${GREEN}✅ Gateway API test completed${NC}" |