Property contact form
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
'use server';
|
||||
import connectDB from '@/config/database';
|
||||
import Message from '@/models/Message';
|
||||
import { getSessionUser } from '@/utils/getSessionUser';
|
||||
import { revalidatePath } from 'next/cache';
|
||||
|
||||
async function addMessage(previousState, formData) {
|
||||
await connectDB();
|
||||
|
||||
const sessionUser = await getSessionUser();
|
||||
|
||||
if (!sessionUser || !sessionUser.user) {
|
||||
return { error: 'You must be logged in to send a message' };
|
||||
}
|
||||
|
||||
const { user } = sessionUser;
|
||||
|
||||
const recipient = formData.get('recipient');
|
||||
|
||||
if (user.id === recipient) {
|
||||
return { error: 'You can not send a message to yourself' };
|
||||
}
|
||||
|
||||
const newMessage = new Message({
|
||||
sender: user.id,
|
||||
recipient,
|
||||
property: formData.get('property'),
|
||||
name: formData.get('name'),
|
||||
email: formData.get('email'),
|
||||
phone: formData.get('phone'),
|
||||
body: formData.get('message'),
|
||||
});
|
||||
|
||||
await newMessage.save();
|
||||
|
||||
return { submitted: true };
|
||||
}
|
||||
|
||||
export default addMessage;
|
||||
Reference in New Issue
Block a user