feat(config-route): add POST handler

This commit is contained in:
ItzCrazyKns
2025-10-17 14:38:05 +05:30
parent ca8b74b695
commit 09dd8dba5a

View File

@@ -2,6 +2,11 @@ import configManager from '@/lib/config';
import ModelRegistry from '@/lib/models/registry';
import { NextRequest, NextResponse } from 'next/server';
type SaveConfigBody = {
key: string;
value: string;
};
export const GET = async (req: NextRequest) => {
try {
const values = configManager.currentConfig;
@@ -11,19 +16,53 @@ export const GET = async (req: NextRequest) => {
const modelProviders = await modelRegistry.getActiveProviders();
values.modelProviders = values.modelProviders.map((mp) => {
const activeProvider = modelProviders.find((p) => p.id === mp.id)
const activeProvider = modelProviders.find((p) => p.id === mp.id);
return {
...mp,
chatModels: activeProvider?.chatModels ?? mp.chatModels,
embeddingModels: activeProvider?.embeddingModels ?? mp.embeddingModels
}
})
embeddingModels: activeProvider?.embeddingModels ?? mp.embeddingModels,
};
});
return NextResponse.json({
values,
fields,
})
});
} catch (err) {
console.error('Error in getting config: ', err);
return Response.json(
{ message: 'An error has occurred.' },
{ status: 500 },
);
}
};
export const POST = async (req: NextRequest) => {
try {
const body: SaveConfigBody = await req.json();
if (!body.key || !body.value) {
return Response.json(
{
message: 'Key and value are required.',
},
{
status: 400,
},
);
}
configManager.updateConfig(body.key, body.value);
return Response.json(
{
message: 'Config updated successfully.',
},
{
status: 200,
},
);
} catch (err) {
console.error('Error in getting config: ', err);
return Response.json(