Delete message

This commit is contained in:
Brad Traversy
2024-07-15 11:09:27 -04:00
parent bfbcca7c63
commit a51dbc3276
2 changed files with 50 additions and 2 deletions
+34
View File
@@ -0,0 +1,34 @@
'use server';
import connectDB from '@/config/database';
import Message from '@/models/Message';
import { getSessionUser } from '@/utils/getSessionUser';
import { revalidatePath } from 'next/cache';
async function deleteMessage(messageId) {
await connectDB();
const sessionUser = await getSessionUser();
if (!sessionUser || !sessionUser.user) {
throw new Error('User ID is required');
}
const { userId } = sessionUser;
const message = await Message.findById(messageId);
if (!message) throw new Error('Message Not Found');
// Verify ownership
if (message.recipient.toString() !== userId) {
throw new Error('Unauthorized');
}
// revalidate cache
revalidatePath('/messages', 'page');
await message.deleteOne();
}
export default deleteMessage;