'use server'; import { auth } from '@clerk/nextjs/server'; import { revalidatePath } from 'next/cache'; import { ACTION, ENTITY_TYPE } from '@prisma/client'; import { db } from '@/lib/db'; import { createAuditLog } from '@/lib/create-audit-log'; import { createSafeAction } from '@/lib/create-safe-action'; import { InputType, ReturnType } from './types'; import { DeleteList } from './schema'; const handler = async (data: InputType): Promise => { const { userId, orgId } = auth(); if (!userId || !orgId) return { error: 'Unauthorized' }; const { id, boardId } = data; let list; try { list = await db.list.delete({ where: { id, boardId, board: { orgId, }, }, }); await createAuditLog({ entityTitle: list.title, entityType: ENTITY_TYPE.LIST, entityId: list.id, action: ACTION.DELETE, }); } catch (error) { return { error: 'Failed to delete list', }; } revalidatePath(`/board/${boardId}`); return { data: list }; }; export const deleteList = createSafeAction(DeleteList, handler);