mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-10-18 21:38:14 +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 ModelRegistry from '@/lib/models/registry';
|
||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
|
|
||||||
|
type SaveConfigBody = {
|
||||||
|
key: string;
|
||||||
|
value: string;
|
||||||
|
};
|
||||||
|
|
||||||
export const GET = async (req: NextRequest) => {
|
export const GET = async (req: NextRequest) => {
|
||||||
try {
|
try {
|
||||||
const values = configManager.currentConfig;
|
const values = configManager.currentConfig;
|
||||||
@@ -11,19 +16,53 @@ export const GET = async (req: NextRequest) => {
|
|||||||
const modelProviders = await modelRegistry.getActiveProviders();
|
const modelProviders = await modelRegistry.getActiveProviders();
|
||||||
|
|
||||||
values.modelProviders = values.modelProviders.map((mp) => {
|
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 {
|
return {
|
||||||
...mp,
|
...mp,
|
||||||
chatModels: activeProvider?.chatModels ?? mp.chatModels,
|
chatModels: activeProvider?.chatModels ?? mp.chatModels,
|
||||||
embeddingModels: activeProvider?.embeddingModels ?? mp.embeddingModels
|
embeddingModels: activeProvider?.embeddingModels ?? mp.embeddingModels,
|
||||||
}
|
};
|
||||||
})
|
});
|
||||||
|
|
||||||
return NextResponse.json({
|
return NextResponse.json({
|
||||||
values,
|
values,
|
||||||
fields,
|
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) {
|
} catch (err) {
|
||||||
console.error('Error in getting config: ', err);
|
console.error('Error in getting config: ', err);
|
||||||
return Response.json(
|
return Response.json(
|
||||||
|
Reference in New Issue
Block a user