823 B30 lines
Blame
1import { NextRequest, NextResponse } from "next/server";
2import { extractToken, verifyToken } from "@/server/collab-auth";
3import { canAccessRepo, loadRoom } from "@/server/collab-rooms";
4
5export const dynamic = "force-dynamic";
6
7export async function GET(
8 req: NextRequest,
9 { params }: { params: Promise<{ owner: string; repo: string }> }
10) {
11 const { owner, repo } = await params;
12 const token = extractToken(req);
13
14 if (!token) {
15 return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
16 }
17
18 try {
19 verifyToken(token);
20 } catch {
21 return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
22 }
23
24 if (!(await canAccessRepo(owner, repo, token))) {
25 return NextResponse.json({ error: "Not found" }, { status: 404 });
26 }
27
28 return NextResponse.json(loadRoom(owner, repo));
29}
30