Spaces:
Sleeping
Sleeping
| 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 }); | |
| } | |