diff --git a/src/app/api/discover/refresh/route.ts b/src/app/api/discover/refresh/route.ts new file mode 100644 index 0000000..ac67aee --- /dev/null +++ b/src/app/api/discover/refresh/route.ts @@ -0,0 +1,19 @@ +import { NextRequest, NextResponse } from "next/server"; +import { revalidateTag } from "next/cache"; +import { checkUserRoles } from "@/utils/user"; +import { createClient } from "@/utils/supabase/server"; + +export async function GET(req: NextRequest) { + const supa = await createClient(); + const { data: user } = await supa.auth.getUser(); + if (!user) { + return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); + } + const { isAdmin } = await checkUserRoles(supa); + if (!isAdmin) { + return NextResponse.json({ error: "Forbidden" }, { status: 403 }); + } + + revalidateTag("discover"); + return NextResponse.redirect(new URL("/discover", req.url)); +} diff --git a/src/app/discover/actions.ts b/src/app/discover/actions.ts index c995e6d..ff03e9b 100644 --- a/src/app/discover/actions.ts +++ b/src/app/discover/actions.ts @@ -328,7 +328,7 @@ export async function getDiscoverData(sort: DiscoverSortOption): Promise