import type Database from "bun:sqlite"; import type { RuntimeMode } from "../../../shared/api"; import type { Logger } from "../../logger"; import { listProviders } from "../../db/providers"; import { jsonResponse, parseListParams } from "../../helpers"; const ALLOWED_SORT_BY = ["createdAt", "name"]; export function handleListProviders(req: Request, db: Database, mode: RuntimeMode, _logger: Logger): Response { const url = new URL(req.url); const typeParam = url.searchParams.get("type"); const parsed = parseListParams(url, mode, { allowedSortBy: ALLOWED_SORT_BY }); if (parsed instanceof Response) return parsed; const result = listProviders(db, { keyword: parsed.keyword, page: parsed.page, pageSize: parsed.pageSize, sortBy: parsed.sortBy, sortOrder: parsed.sortOrder, type: typeParam ?? undefined, }); return jsonResponse(result, { mode }); }