/
home
/
techb158
/
balavpn.abdallabala.com
/
src
/
app
/
api
/
admin
/
organizations
/
/home/techb158/balavpn.abdallabala.com/src/app/api/admin/organizations
mkdir
upload
Name
Size
Mode
Actions
route.js
1566
0644
edit
dl
rm
Edit:
/home/techb158/balavpn.abdallabala.com/src/app/api/admin/organizations/route.js
(1566B)
const { prisma } = require("../../../../lib/prisma"); const { jsonResponse, errorResponse } = require("../../../../lib/http"); const { requireSuperUser } = require("../../../../lib/request-context"); export async function GET(request) { try { const actor = await requireSuperUser(request); // Super Admin: only see assigned organizations if (actor.platformRole === "SUPER_ADMIN") { const accessEntries = await prisma.organizationAccess.findMany({ where: { userId: actor.id }, include: { organization: { include: { _count: { select: { memberships: true, workspaces: true } } } } } }); const organizations = accessEntries.map(e => e.organization); return jsonResponse({ organizations, total: organizations.length, page: 1, limit: organizations.length }); } // Super Owner: see all organizations const page = parseInt(new URL(request.url).searchParams.get("page") || "1", 10); const limit = Math.min(parseInt(new URL(request.url).searchParams.get("limit") || "50", 10), 100); const skip = (page - 1) * limit; const [organizations, total] = await Promise.all([ prisma.organization.findMany({ skip, take: limit, orderBy: { createdAt: "desc" }, include: { _count: { select: { memberships: true, workspaces: true } } } }), prisma.organization.count() ]); return jsonResponse({ organizations, total, page, limit }); } catch (error) { return errorResponse(error); } }
Save
cmd:
run