Files
Dariusz L c247c4a7a4 refactor: split model_service into focused service classes
Break down the monolithic model_service into smaller, single-responsibility
services: CivitAISearchService, CustomUrlService, and ModelDetailsService.
Introduce ModelServiceDependencies base class to centralize RouteContext
dependency injection. Update model_service to act as a thin facade that
delegates to the specialized services. Add unit tests validating the new
service boundaries and basic request validation behavior.
2026-08-02 00:17:45 +02:00

29 lines
1.2 KiB
Python

"""Facade for model-related services."""
from ..routes.context import RouteContext
from .civitai_search_service import CivitAISearchService
from .custom_url_service import CustomUrlService
from .model_details_service import ModelDetailsService
class ModelService:
"""Expose model operations through the route-facing service API."""
def __init__(self, context: RouteContext):
self.civitai_search_service = CivitAISearchService(context)
self.custom_url_service = CustomUrlService(context)
self.model_details_service = ModelDetailsService(context)
self.logger = self.civitai_search_service.logger
async def civitai_search(self, request):
"""Delegate CivitAI search to its specialized service."""
return await self.civitai_search_service.civitai_search(request)
async def custom_url(self, request):
"""Delegate custom URL resolution to its specialized service."""
return await self.custom_url_service.custom_url(request)
async def model_details(self, request):
"""Delegate model details loading to its specialized service."""
return await self.model_details_service.model_details(request)