Improve AI logic
This commit is contained in:
@@ -4,8 +4,8 @@ Handles basic CRUD operations for tenants
|
||||
"""
|
||||
|
||||
import structlog
|
||||
from fastapi import APIRouter, Depends, HTTPException, status, Path
|
||||
from typing import Dict, Any
|
||||
from fastapi import APIRouter, Depends, HTTPException, status, Path, Query
|
||||
from typing import Dict, Any, List
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.tenants import TenantResponse, TenantUpdate
|
||||
@@ -30,6 +30,47 @@ def get_enhanced_tenant_service():
|
||||
logger.error("Failed to create enhanced tenant service", error=str(e))
|
||||
raise HTTPException(status_code=500, detail="Service initialization failed")
|
||||
|
||||
@router.get(route_builder.build_base_route("", include_tenant_prefix=False), response_model=List[TenantResponse])
|
||||
@track_endpoint_metrics("tenants_list")
|
||||
async def get_active_tenants(
|
||||
skip: int = Query(0, ge=0, description="Number of records to skip"),
|
||||
limit: int = Query(100, ge=1, le=1000, description="Maximum number of records to return"),
|
||||
current_user: Dict[str, Any] = Depends(get_current_user_dep),
|
||||
tenant_service: EnhancedTenantService = Depends(get_enhanced_tenant_service)
|
||||
):
|
||||
"""Get all active tenants - Available to service accounts and admins"""
|
||||
|
||||
logger.info(
|
||||
"Get active tenants request received",
|
||||
skip=skip,
|
||||
limit=limit,
|
||||
user_id=current_user.get("user_id"),
|
||||
user_type=current_user.get("type", "user"),
|
||||
is_service=current_user.get("type") == "service",
|
||||
role=current_user.get("role"),
|
||||
service_name=current_user.get("service", "none")
|
||||
)
|
||||
|
||||
# Allow service accounts to call this endpoint
|
||||
if current_user.get("type") != "service":
|
||||
# For non-service users, could add additional role checks here if needed
|
||||
logger.debug(
|
||||
"Non-service user requesting active tenants",
|
||||
user_id=current_user.get("user_id"),
|
||||
role=current_user.get("role")
|
||||
)
|
||||
|
||||
tenants = await tenant_service.get_active_tenants(skip=skip, limit=limit)
|
||||
|
||||
logger.debug(
|
||||
"Get active tenants successful",
|
||||
count=len(tenants),
|
||||
skip=skip,
|
||||
limit=limit
|
||||
)
|
||||
|
||||
return tenants
|
||||
|
||||
@router.get(route_builder.build_base_route("{tenant_id}", include_tenant_prefix=False), response_model=TenantResponse)
|
||||
@track_endpoint_metrics("tenant_get")
|
||||
async def get_tenant(
|
||||
|
||||
Reference in New Issue
Block a user