Convert teams api routes.

This commit is contained in:
Mike Cao 2025-01-24 23:34:02 -08:00
parent 7d5556a637
commit e51f182403
15 changed files with 354 additions and 4 deletions

View file

@ -0,0 +1,38 @@
import { z } from 'zod';
import { getRandomChars } from 'next-basics';
import { unauthorized, json, badRequest } from 'lib/response';
import { canCreateTeam, checkAuth } from 'lib/auth';
import { uuid } from 'lib/crypto';
import { checkRequest } from 'lib/request';
import { createTeam } from 'queries';
export async function POST(request: Request) {
const schema = z.object({
name: z.string().max(50),
});
const { body, error } = await checkRequest(request, schema);
if (error) {
return badRequest(error);
}
const auth = await checkAuth(request);
if (!auth || !(await canCreateTeam(auth))) {
return unauthorized();
}
const { name } = body;
const team = await createTeam(
{
id: uuid(),
name,
accessCode: `team_${getRandomChars(16)}`,
},
auth.user.userId,
);
return json(team);
}