Files
OmniRoute/src/app/api/synced-available-models/route.ts

34 lines
1021 B
TypeScript

import { getSyncedAvailableModels, getAllSyncedAvailableModels } from "@/lib/db/models";
import { isAuthenticated } from "@/shared/utils/apiAuth";
/**
* GET /api/synced-available-models?provider=<id>
* List synced available models for a provider (or all providers).
*/
export async function GET(request: Request) {
try {
if (!(await isAuthenticated(request))) {
return Response.json(
{ error: { message: "Authentication required", type: "invalid_api_key" } },
{ status: 401 }
);
}
const { searchParams } = new URL(request.url);
const provider = searchParams.get("provider");
if (provider) {
const models = await getSyncedAvailableModels(provider);
return Response.json({ models });
}
const allModels = await getAllSyncedAvailableModels();
return Response.json(allModels);
} catch {
return Response.json(
{ error: { message: "Failed to fetch synced available models", type: "server_error" } },
{ status: 500 }
);
}
}