/home/techb158/cosmic-risk.abdallabala.com/src/app/api/organizations
NameSizeModeActions
[organizationId]/-0744rm
route.js17420644editdlrm
Edit: /home/techb158/cosmic-risk.abdallabala.com/src/app/api/organizations/route.js (1742B)
const { prisma } = require("../../../lib/prisma"); const { getActorFromRequest } = require("../../../lib/request-context"); const { jsonResponse, errorResponse, parseJson } = require("../../../lib/http"); function slug(value) { return String(value || "organization").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, ""); } export async function GET(request) { try { const actor = await getActorFromRequest(request); return jsonResponse({ organizations: actor.memberships.map(item => ({ id: item.organization.id, name: item.organization.name, slug: item.organization.slug, status: item.organization.status, role: item.role.code })) }); } catch (error) { return errorResponse(error); } } export async function POST(request) { try { const actor = await getActorFromRequest(request); const body = await parseJson(request); const ownerRole = await prisma.role.findUniqueOrThrow({ where: { code: "owner" } }); const organization = await prisma.organization.create({ data: { name: body.name, slug: body.slug || slug(body.name), status: "TRIAL", planCode: body.planCode || "pilot", manualBilling: true, memberships: { create: { userId: actor.id, roleId: ownerRole.id, status: "ACTIVE" } }, subscriptions: { create: { source: "MANUAL", status: "TRIALING", planCode: body.planCode || "pilot", adminOverride: true } } } }); return jsonResponse({ organization }, 201); } catch (error) { return errorResponse(error); } }