Merge pull request #59 from christianlouis/perf-optimize-provider-preset-lookup-10373218421313288605

 Optimize provider preset lookup by ID
This commit is contained in:
Christian Krakau-Louis
2026-03-23 17:28:41 +01:00
committed by GitHub
+7 -3
View File
@@ -133,6 +133,9 @@ PROVIDER_PRESETS: List[ProviderPreset] = [
), ),
] ]
# Create a mapping for O(1) provider lookup
PROVIDER_PRESETS_MAP = {preset.id: preset for preset in PROVIDER_PRESETS}
@router.get("/presets", response_model=ProviderListResponse) @router.get("/presets", response_model=ProviderListResponse)
async def list_provider_presets( async def list_provider_presets(
@@ -148,9 +151,10 @@ async def get_provider_preset(
current_user: User = Depends(get_current_active_user), current_user: User = Depends(get_current_active_user),
): ):
"""Get a specific provider preset by ID""" """Get a specific provider preset by ID"""
for preset in PROVIDER_PRESETS: preset = PROVIDER_PRESETS_MAP.get(provider_id)
if preset.id == provider_id: if preset:
return preset return preset
raise HTTPException( raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, status_code=status.HTTP_404_NOT_FOUND,
detail=f"Provider '{provider_id}' not found", detail=f"Provider '{provider_id}' not found",