* hotfix * type fix and test fix * update env example * improvements * more fix * tada --------- Co-authored-by: Keith Williams <keithwillcode@gmail.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import { NextResponse } from "next/server";
|
|
import type { NextRequest } from "next/server";
|
|
|
|
import { validateMintlifyConfig } from "@calcom/lib/server/mintlifyChatValidation";
|
|
|
|
/**
|
|
* POST /api/mintlify-chat/topic
|
|
*
|
|
* Creates a new Mintlify chat topic.
|
|
* This endpoint proxies requests to Mintlify's API while keeping
|
|
* the API key secure on the server side.
|
|
*/
|
|
export async function POST(_req: NextRequest) {
|
|
try {
|
|
// Validate configuration
|
|
const { apiKey, apiBaseUrl } = validateMintlifyConfig();
|
|
|
|
// Make request to Mintlify
|
|
const topicUrl = `${apiBaseUrl}/topic`;
|
|
console.log("[Mintlify Chat Topic] Fetching topic endpoint", { topicUrl });
|
|
|
|
const topicResponse = await fetch(topicUrl, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
Authorization: `Bearer ${apiKey}`,
|
|
},
|
|
});
|
|
|
|
if (!topicResponse.ok) {
|
|
return NextResponse.json(
|
|
{ error: "Failed to create topic" },
|
|
{ status: topicResponse.status }
|
|
);
|
|
}
|
|
|
|
const topic = await topicResponse.json();
|
|
|
|
return NextResponse.json(topic);
|
|
} catch {
|
|
// Return generic error message to avoid leaking internal details
|
|
return NextResponse.json(
|
|
{ error: "Failed to create topic. Please try again later." },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|
|
|