24 lines
900 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { getRoom, getMember, leaveRoom } from "../../../../db/chat-rooms";
/** POST /api/chat/rooms/[roomId]/leave Raum verlassen */
export default defineEventHandler(async (event) => {
const user = await requireUser(event);
const roomId = getRouterParam(event, "roomId");
if (!roomId) throw createError({ statusCode: 400, message: "roomId fehlt" });
const room = await getRoom(roomId);
if (!room) throw createError({ statusCode: 404, message: "Raum nicht gefunden" });
const member = await getMember(roomId, user.id);
if (!member || member.status !== "active") {
throw createError({ statusCode: 400, message: "Kein Mitglied" });
}
if (member.role === "owner" && !room.isDefault) {
throw createError({ statusCode: 400, message: "Owner kann den Raum nicht verlassen lösche ihn stattdessen" });
}
await leaveRoom(roomId, user.id);
return { ok: true };
});