Added missing user delete route.

This commit is contained in:
Mike Cao 2025-02-03 19:34:09 -08:00
parent 7d952029c1
commit fc4716a38d
4 changed files with 37 additions and 12 deletions

View file

@ -1,7 +1,7 @@
import { z } from 'zod';
import { canUpdateUser, canViewUser } from 'lib/auth';
import { getUser, getUserByUsername, updateUser } from 'queries';
import { json, unauthorized, badRequest } from 'lib/response';
import { canUpdateUser, canViewUser, canDeleteUser } from 'lib/auth';
import { getUser, getUserByUsername, updateUser, deleteUser } from 'queries';
import { json, unauthorized, badRequest, ok } from 'lib/response';
import { hashPassword } from 'next-basics';
import { parseRequest } from 'lib/request';
@ -74,3 +74,28 @@ export async function POST(request: Request, { params }: { params: Promise<{ use
return json(updated);
}
export async function DELETE(
request: Request,
{ params }: { params: Promise<{ userId: string }> },
) {
const { auth, error } = await parseRequest(request);
if (error) {
return error();
}
const { userId } = await params;
if (!(await canDeleteUser(auth))) {
return unauthorized();
}
if (userId === auth.user.id) {
return badRequest('You cannot delete yourself.');
}
await deleteUser(userId);
return ok();
}