Update AboutUsPage, server routes, packages, and assets
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import express from 'express';
|
||||
import { saveLead, getLeads } from '../db.js';
|
||||
import { sendContactEmail } from '../services/mailService.js';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// POST /api/contact - Handle Contact Us Form submission via SMTP
|
||||
router.post('/', async (req, res) => {
|
||||
try {
|
||||
const { name, email, phone, mobile, subject, message, interests, type } = req.body;
|
||||
|
||||
const contactName = name?.trim();
|
||||
const contactEmail = email?.trim();
|
||||
const contactPhone = (phone || mobile || '').trim();
|
||||
const contactSubject = (subject || interests || type || 'General Inquiry').trim();
|
||||
const contactMessage = (message || req.body.comments || '').trim();
|
||||
|
||||
if (!contactName || !contactEmail) {
|
||||
return res.status(400).json({ error: 'Name and Email are required.' });
|
||||
}
|
||||
|
||||
// Save lead record in database
|
||||
const lead = saveLead({
|
||||
name: contactName,
|
||||
email: contactEmail,
|
||||
phone: contactPhone,
|
||||
subject: contactSubject,
|
||||
message: contactMessage,
|
||||
type: type || 'contact'
|
||||
});
|
||||
|
||||
// Attempt sending email via SMTP service
|
||||
const mailResult = await sendContactEmail({
|
||||
name: contactName,
|
||||
email: contactEmail,
|
||||
phone: contactPhone,
|
||||
subject: contactSubject,
|
||||
message: contactMessage
|
||||
});
|
||||
|
||||
if (!mailResult.success) {
|
||||
// If SMTP is not yet configured or fails, return 200 with lead saved & warning
|
||||
return res.status(200).json({
|
||||
success: true,
|
||||
saved: true,
|
||||
leadId: lead.id,
|
||||
smtpError: mailResult.error,
|
||||
message: 'Your message was saved successfully. Note: SMTP email dispatch requires SMTP credentials in .env.'
|
||||
});
|
||||
}
|
||||
|
||||
return res.status(200).json({
|
||||
success: true,
|
||||
saved: true,
|
||||
leadId: lead.id,
|
||||
messageId: mailResult.messageId,
|
||||
message: 'Message sent successfully via SMTP!'
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('[Contact Route Error]', error);
|
||||
return res.status(500).json({ error: error.message || 'Internal Server Error' });
|
||||
}
|
||||
});
|
||||
|
||||
// GET /api/contact/leads - Retrieve saved contact leads
|
||||
router.get('/leads', (_req, res) => {
|
||||
try {
|
||||
const leads = getLeads();
|
||||
return res.json({ success: true, leads });
|
||||
} catch (error) {
|
||||
return res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user