refactor(phase3-session-a): extract Image Studio models and deps into separate modules
- Created routers/image_studio/models.py with all 40 Pydantic models - Created routers/image_studio/deps.py with get_studio_manager() and _require_user_id() - Renamed old monolithic image_studio.py -> image_studio_router.py - Updated __init__.py to re-export the router for backward compatibility - Old file now imports models and deps from new modules (no inline definitions) Backward compatibility: from routers.image_studio import router still works. Route count unchanged: 33 routes, prefix /api/image-studio.
This commit is contained in:
35
backend/routers/image_studio/deps.py
Normal file
35
backend/routers/image_studio/deps.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Shared dependencies for Image Studio API endpoints."""
|
||||
|
||||
from typing import Dict, Any
|
||||
from fastapi import Depends, HTTPException, status
|
||||
|
||||
from services.image_studio import ImageStudioManager
|
||||
from middleware.auth_middleware import get_current_user
|
||||
from utils.logger_utils import get_service_logger
|
||||
|
||||
logger = get_service_logger("api.image_studio")
|
||||
|
||||
|
||||
def get_studio_manager() -> ImageStudioManager:
|
||||
"""Get Image Studio Manager instance."""
|
||||
return ImageStudioManager()
|
||||
|
||||
|
||||
def _require_user_id(current_user: Dict[str, Any], operation: str) -> str:
|
||||
"""Ensure user_id is available for protected operations."""
|
||||
user_id = (
|
||||
current_user.get("sub")
|
||||
or current_user.get("user_id")
|
||||
or current_user.get("id")
|
||||
or current_user.get("clerk_user_id")
|
||||
)
|
||||
if not user_id:
|
||||
logger.error(
|
||||
"[Image Studio] ❌ Missing user_id for %s operation - blocking request",
|
||||
operation,
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Authenticated user required for image operations.",
|
||||
)
|
||||
return user_id
|
||||
Reference in New Issue
Block a user