Bot
Initial commit for HF Spaces
05c5ed5
Raw
History Blame Contribute Delete
2.09 kB
import { McpServerCustomizationZodSchema } from "app-types/mcp";
import { getSession } from "auth/server";
import { serverCache } from "lib/cache";
import { CacheKeys } from "lib/cache/cache-keys";
import { mcpServerCustomizationRepository } from "lib/db/repository";
import { NextResponse } from "next/server";
export async function GET(
_: Request,
{ params }: { params: Promise<{ server: string }> },
) {
const { server } = await params;
const session = await getSession();
if (!session) {
return new Response("Unauthorized", { status: 401 });
}
const mcpServerCustomization =
await mcpServerCustomizationRepository.selectByUserIdAndMcpServerId({
mcpServerId: server,
userId: session.user.id,
});
return NextResponse.json(mcpServerCustomization ?? {});
}
export async function POST(
request: Request,
{ params }: { params: Promise<{ server: string }> },
) {
const { server } = await params;
const session = await getSession();
if (!session) {
return new Response("Unauthorized", { status: 401 });
}
const body = await request.json();
const { mcpServerId, prompt } = McpServerCustomizationZodSchema.parse({
...body,
mcpServerId: server,
});
const result =
await mcpServerCustomizationRepository.upsertMcpServerCustomization({
userId: session.user.id,
mcpServerId,
prompt,
});
const key = CacheKeys.mcpServerCustomizations(session.user.id);
void serverCache.delete(key);
return NextResponse.json(result);
}
export async function DELETE(
_: Request,
{ params }: { params: Promise<{ server: string }> },
) {
const { server } = await params;
const session = await getSession();
if (!session) {
return new Response("Unauthorized", { status: 401 });
}
await mcpServerCustomizationRepository.deleteMcpServerCustomizationByMcpServerIdAndUserId(
{
mcpServerId: server,
userId: session.user.id,
},
);
const key = CacheKeys.mcpServerCustomizations(session.user.id);
void serverCache.delete(key);
return NextResponse.json({ success: true });
}