35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
import axios from 'axios';
|
|
|
|
const BACKEND_SERVER_URL = process.env.BACKEND_SERVER_URL;
|
|
const BACKEND_SITE_NAME = process.env.BACKEND_SITE_NAME;
|
|
|
|
export async function POST(request) {
|
|
try {
|
|
const body = await request.json();
|
|
const { subject, content } = body;
|
|
if (!subject || !content) {
|
|
return Response.json({ error: 'Missing parameters: subject and content are required.' }, { status: 400 });
|
|
}
|
|
const response = await axios.post(
|
|
`${BACKEND_SERVER_URL}/api/action/jsite.api.v1.send_email`,
|
|
{ subject, content, site_name: BACKEND_SITE_NAME }
|
|
);
|
|
const message = response.data.message;
|
|
if (message?.success) {
|
|
const successMessage = typeof message.message === 'string' ? message.message : 'Email sent successfully';
|
|
return Response.json({ success: true, message: successMessage });
|
|
} else if (message?.error) {
|
|
const errorMessage = typeof message.error === 'string' ? message.error : 'Failed to send email';
|
|
return Response.json({ error: errorMessage }, { status: 400 });
|
|
} else {
|
|
return Response.json({ error: 'Unknown error' }, { status: 500 });
|
|
}
|
|
} catch (error) {
|
|
const errorMessage = typeof error.message === 'string' ? error.message : 'Internal server error';
|
|
return Response.json(
|
|
{ error: errorMessage, detail: error?.response?.data || null },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|