REFACTOR ALL APIs
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user