feat(knowledge): add service library
This commit is contained in:
parent
ecab0fe6b6
commit
228da8f814
32 changed files with 2878 additions and 6 deletions
51
frontend/athena/app/api/knowledge/[...path]/route.ts
Normal file
51
frontend/athena/app/api/knowledge/[...path]/route.ts
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import { NextRequest } from "next/server";
|
||||
|
||||
import { assertSameOrigin } from "@/lib/server/request-guards";
|
||||
import { proxyHermesRequest, proxyHermesStreamRequest } from "@/lib/server/hermes-proxy";
|
||||
|
||||
type Params = {
|
||||
params: Promise<{
|
||||
path: string[];
|
||||
}>;
|
||||
};
|
||||
|
||||
async function knowledgePath(request: NextRequest, context: Params) {
|
||||
const { path } = await context.params;
|
||||
return `/knowledge/${path.join("/")}${request.nextUrl.search}`;
|
||||
}
|
||||
|
||||
function isDownloadPath(path: string) {
|
||||
return /\/documents\/\d+\/download(?:\?|$)/.test(path);
|
||||
}
|
||||
|
||||
export async function GET(request: NextRequest, context: Params) {
|
||||
const path = await knowledgePath(request, context);
|
||||
if (isDownloadPath(path)) {
|
||||
return proxyHermesStreamRequest(request, path);
|
||||
}
|
||||
return proxyHermesRequest(request, path);
|
||||
}
|
||||
|
||||
export async function POST(request: NextRequest, context: Params) {
|
||||
const originError = assertSameOrigin(request);
|
||||
if (originError) {
|
||||
return originError;
|
||||
}
|
||||
return proxyHermesRequest(request, await knowledgePath(request, context));
|
||||
}
|
||||
|
||||
export async function PUT(request: NextRequest, context: Params) {
|
||||
const originError = assertSameOrigin(request);
|
||||
if (originError) {
|
||||
return originError;
|
||||
}
|
||||
return proxyHermesRequest(request, await knowledgePath(request, context));
|
||||
}
|
||||
|
||||
export async function DELETE(request: NextRequest, context: Params) {
|
||||
const originError = assertSameOrigin(request);
|
||||
if (originError) {
|
||||
return originError;
|
||||
}
|
||||
return proxyHermesRequest(request, await knowledgePath(request, context));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue