Files
echecsfrance/src/server/deleteZone.ts
T
Timothy Armes 1c7ad63e03 Update packages
2024-10-21 15:19:28 +02:00

44 lines
972 B
TypeScript

"use server";
import { ObjectId } from "mongodb";
import { z } from "zod";
import { auth } from "@/auth";
import { collections, dbConnect } from "@/server/mongodb";
import { errorLog } from "@/utils/logger";
import { actionClient } from "./safeAction";
const deleteZoneSchema = z.object({
id: z.string(),
});
export const deleteZone = actionClient
.schema(deleteZoneSchema)
.action(async (input) => {
const { id } = input.parsedInput;
try {
await dbConnect();
const user = await auth();
if (!user?.user) {
throw new Error("You must be logged in to create a zone");
}
const result = await collections.zones!.deleteOne({
_id: new ObjectId(id),
userId: new ObjectId(user.user!.id!),
});
if (!result || result.deletedCount !== 1) {
throw new Error("ERR_ZONE_DELETE_FAILED");
}
return true;
} catch (error) {
errorLog(error);
throw error;
}
});