mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-10-18 13:28:15 +00:00
feat(config-route): add POST handler
This commit is contained in:
@@ -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(
|
||||
|
Reference in New Issue
Block a user