| |
|
| | import { NextRequest, NextResponse } from 'next/server'; |
| | import { adminDb } from '@/lib/firebase-admin'; |
| |
|
| | export async function POST(req: NextRequest) { |
| | const { chatId, messageId, userId } = await req.json(); |
| | console.log(`[DELETE_MSG] Request received to delete message ${messageId} in chat ${chatId} by user ${userId}.`); |
| |
|
| | if (!chatId || !messageId || !userId) { |
| | console.error('[DELETE_MSG] Missing required fields.'); |
| | return NextResponse.json({ error: 'Missing required fields: chatId, messageId, userId' }, { status: 400 }); |
| | } |
| |
|
| | try { |
| | const messageRef = adminDb.ref(`chats/${chatId}/messages/${messageId}`); |
| | const snapshot = await messageRef.get(); |
| |
|
| | if (!snapshot.exists()) { |
| | console.log(`[DELETE_MSG] Message ${messageId} already deleted or never existed.`); |
| | return NextResponse.json({ success: true, message: 'Message already deleted.' }); |
| | } |
| |
|
| | |
| | |
| | await messageRef.remove(); |
| | console.log(`[DELETE_MSG] Message ${messageId} in chat ${chatId} was successfully deleted by trigger from user ${userId}.`); |
| | |
| | return NextResponse.json({ success: true, message: 'Message deleted.' }); |
| |
|
| | } catch (error: any) { |
| | console.error('Error in delete-message endpoint:', error); |
| | return NextResponse.json({ error: 'Failed to process message deletion', details: error.message }, { status: 500 }); |
| | } |
| | } |
| |
|