Fix bugs issues

This commit is contained in:
Urtzi Alfaro
2025-07-18 14:18:52 +02:00
parent 57ac772c6c
commit a469f0c01d
6 changed files with 288 additions and 305 deletions

View File

@@ -16,8 +16,7 @@ from app.core.config import settings
from app.models.users import User, UserSession
from app.schemas.auth import UserRegistration, UserLogin, TokenResponse, UserResponse
from app.core.security import security_manager
from app.services.messaging import message_publisher
from shared.messaging.events import UserRegisteredEvent, UserLoginEvent
from app.services.messaging import publish_user_registered, publish_user_login
logger = logging.getLogger(__name__)
@@ -58,20 +57,18 @@ class AuthService:
await db.commit()
await db.refresh(user)
# Publish user registered event
await message_publisher.publish_event(
"user_events",
"user.registered",
UserRegisteredEvent(
service_name="auth-service",
data={
"user_id": str(user.id),
"email": user.email,
"full_name": user.full_name,
"language": user.language
}
).__dict__
)
# Publish user registered event - SIMPLIFIED
event_data = {
"user_id": str(user.id),
"email": user.email,
"full_name": user.full_name,
"language": user.language,
"timestamp": datetime.now(timezone.utc).isoformat()
}
success = await publish_user_registered(event_data)
if not success:
logger.warning("Failed to publish user registered event", user_id=str(user.id))
logger.info(f"User registered: {user.email}")
return UserResponse(**user.to_dict())
@@ -144,22 +141,20 @@ class AuthService:
db.add(session)
await db.commit()
# Publish login event
await message_publisher.publish_event(
"user_events",
"user.login",
UserLoginEvent(
service_name="auth-service",
data={
"user_id": str(user.id),
"email": user.email,
"ip_address": ip_address,
"user_agent": user_agent
}
).__dict__
)
# Publish login event - SIMPLIFIED
event_data = {
"user_id": str(user.id),
"email": user.email,
"ip_address": ip_address,
"user_agent": user_agent,
"timestamp": datetime.now(timezone.utc).isoformat()
}
logger.info(f"User login successful: {user.email}")
success = await publish_user_login(event_data)
if not success:
logger.warning("Failed to publish login event", user_id=str(user.id))
logger.info("User login successful", user_id=str(user.id), email=user.email)
return TokenResponse(
access_token=access_token,

View File

@@ -2,24 +2,37 @@
"""
Messaging service for auth service
"""
from shared.messaging.rabbitmq import RabbitMQClient
from app.core.config import settings
import logging
logger = logging.getLogger(__name__)
# Global message publisher
message_publisher = RabbitMQClient(settings.RABBITMQ_URL)
# Single global instance
auth_publisher = RabbitMQClient(settings.RABBITMQ_URL, "auth-service")
async def setup_messaging():
"""Establishes connection to RabbitMQ for the message publisher."""
logger.info("Attempting to connect to RabbitMQ...")
await message_publisher.connect()
logger.info("RabbitMQ connection established.")
"""Initialize messaging for auth service"""
success = await auth_publisher.connect()
if success:
logger.info("Auth service messaging initialized")
else:
logger.warning("Auth service messaging failed to initialize")
async def cleanup_messaging():
"""Closes the connection to RabbitMQ for the message publisher."""
logger.info("Attempting to disconnect from RabbitMQ...")
await message_publisher.disconnect()
logger.info("RabbitMQ connection closed.")
"""Cleanup messaging for auth service"""
await auth_publisher.disconnect()
logger.info("Auth service messaging cleaned up")
# Convenience functions for auth-specific events
async def publish_user_registered(user_data: dict) -> bool:
"""Publish user registered event"""
return await auth_publisher.publish_user_event("registered", user_data)
async def publish_user_login(user_data: dict) -> bool:
"""Publish user login event"""
return await auth_publisher.publish_user_event("login", user_data)
async def publish_user_logout(user_data: dict) -> bool:
"""Publish user logout event"""
return await auth_publisher.publish_user_event("logout", user_data)