43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
# services/tenant/app/services/messaging.py
|
|
"""
|
|
Tenant service messaging for event publishing
|
|
"""
|
|
from shared.messaging.rabbitmq import RabbitMQClient
|
|
from app.core.config import settings
|
|
import structlog
|
|
from datetime import datetime
|
|
|
|
logger = structlog.get_logger()
|
|
|
|
# Single global instance
|
|
data_publisher = RabbitMQClient(settings.RABBITMQ_URL, "data-service")
|
|
|
|
async def publish_tenant_created(tenant_id: str, owner_id: str, tenant_name: str):
|
|
"""Publish tenant created event"""
|
|
try:
|
|
await data_publisher.publish_event(
|
|
"tenant.created",
|
|
{
|
|
"tenant_id": tenant_id,
|
|
"owner_id": owner_id,
|
|
"tenant_name": tenant_name,
|
|
"timestamp": datetime.utcnow().isoformat()
|
|
}
|
|
)
|
|
except Exception as e:
|
|
logger.error(f"Failed to publish tenant.created event: {e}")
|
|
|
|
async def publish_member_added(tenant_id: str, user_id: str, role: str):
|
|
"""Publish member added event"""
|
|
try:
|
|
await data_publisher.publish_event(
|
|
"tenant.member.added",
|
|
{
|
|
"tenant_id": tenant_id,
|
|
"user_id": user_id,
|
|
"role": role,
|
|
"timestamp": datetime.utcnow().isoformat()
|
|
}
|
|
)
|
|
except Exception as e:
|
|
logger.error(f"Failed to publish tenant.member.added event: {e}") |