REFACTOR ALL APIs

This commit is contained in:
Urtzi Alfaro
2025-10-06 15:27:01 +02:00
parent dc8221bd2f
commit 38fb98bc27
166 changed files with 18454 additions and 13605 deletions

View File

@@ -22,13 +22,27 @@ from shared.auth.decorators import (
get_current_user_dep,
require_admin_role
)
from shared.routing import RouteBuilder
from shared.auth.access_control import (
require_user_role,
admin_role_required,
owner_role_required,
require_subscription_tier,
analytics_tier_required,
enterprise_tier_required
)
# Create route builder for consistent URL structure
route_builder = RouteBuilder('training')
logger = structlog.get_logger()
router = APIRouter()
training_service = TrainingService()
@router.get("/tenants/{tenant_id}/models/{inventory_product_id}/active")
@router.get(
route_builder.build_base_route("models") + "/{inventory_product_id}/active"
)
async def get_active_model(
tenant_id: str = Path(..., description="Tenant ID"),
inventory_product_id: str = Path(..., description="Inventory product UUID"),
@@ -114,7 +128,10 @@ async def get_active_model(
detail="Failed to retrieve model"
)
@router.get("/tenants/{tenant_id}/models/{model_id}/metrics", response_model=ModelMetricsResponse)
@router.get(
route_builder.build_nested_resource_route("models", "model_id", "metrics"),
response_model=ModelMetricsResponse
)
async def get_model_metrics(
model_id: str = Path(..., description="Model ID"),
db: AsyncSession = Depends(get_db)
@@ -168,7 +185,10 @@ async def get_model_metrics(
detail="Failed to retrieve model metrics"
)
@router.get("/tenants/{tenant_id}/models", response_model=List[TrainedModelResponse])
@router.get(
route_builder.build_base_route("models"),
response_model=List[TrainedModelResponse]
)
async def list_models(
tenant_id: str = Path(..., description="Tenant ID"),
status: Optional[str] = Query(None, description="Filter by status (active/inactive)"),
@@ -235,6 +255,7 @@ async def list_models(
)
@router.delete("/models/tenant/{tenant_id}")
@require_user_role(['admin', 'owner'])
async def delete_tenant_models_complete(
tenant_id: str,
current_user = Depends(get_current_user_dep),