18 lines
591 B
Python
18 lines
591 B
Python
from fastapi import HTTPException, status
|
|
|
|
from gallery.easel.core import AppRequest
|
|
from gallery.sketch.api import API
|
|
|
|
|
|
def api_resolver(api_type: type[API]):
|
|
def get_api(request: AppRequest, provider: str) -> API:
|
|
providers = request.app.state.api.get_api_providers(api_type)
|
|
if provider not in providers:
|
|
raise HTTPException(
|
|
status_code=status.HTTP_400_BAD_REQUEST,
|
|
detail={"provider": f"'{provider}' not in {providers}"},
|
|
)
|
|
return request.app.state.api.get_api(api_type, provider)
|
|
|
|
return get_api
|