Files
chronus/src/pages/api/organizations/create.ts
2025-12-25 23:49:47 -07:00

33 lines
770 B
TypeScript

import type { APIRoute } from 'astro';
import { db } from '../../../db';
import { organizations, members } from '../../../db/schema';
import { nanoid } from 'nanoid';
export const POST: APIRoute = async ({ request, locals, redirect }) => {
const user = locals.user;
if (!user) {
return new Response('Unauthorized', { status: 401 });
}
const formData = await request.formData();
const name = formData.get('name')?.toString();
if (!name) {
return new Response('Name is required', { status: 400 });
}
const orgId = nanoid();
await db.insert(organizations).values({
id: orgId,
name,
});
await db.insert(members).values({
userId: user.id,
organizationId: orgId,
role: 'owner',
});
return redirect('/dashboard');
};