51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
'user strict';
|
|
const { ROOT_PATH, HANDLERS_PATH, MODELS_PATH, API_CONFIG } = process.env;
|
|
const { StandAloneContactEmail } = require('./StandAlone.handler');
|
|
const { AccountVerifyEmail, AccountConfirmed, AccountPwdResetEmail, ContactEmail } = require('./SendGrid.handler');
|
|
|
|
const EMAIL_EVENTS={
|
|
ACCOUNT_VERIFY:1,
|
|
ACCOUNT_CONFIRMED:2,
|
|
ACCOUNT_PWD_RESET:3,
|
|
CONTACT_EMAIL:4,
|
|
}
|
|
|
|
/**
|
|
* Send an email according to the event.
|
|
* @param eventId : string
|
|
* @param email_content : { string receiver, {*} content }
|
|
* @returns
|
|
*/
|
|
async function emailEvent( eventId, receiver , content ){
|
|
switch( eventId ){
|
|
case EMAIL_EVENTS.ACCOUNT_VERIFY:
|
|
{
|
|
return await AccountVerifyEmail( receiver, content );
|
|
}
|
|
break;
|
|
case EMAIL_EVENTS.ACCOUNT_CONFIRMED:
|
|
{
|
|
return await AccountConfirmed( receiver, content );
|
|
}
|
|
break;
|
|
case EMAIL_EVENTS.ACCOUNT_PWD_RESET:
|
|
{
|
|
return await AccountPwdResetEmail( receiver, content );
|
|
}
|
|
break;
|
|
case EMAIL_EVENTS.CONTACT_EMAIL:
|
|
{
|
|
await StandAloneContactEmail( content );
|
|
return await ContactEmail( receiver, content );
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
throw new Error(`Email event not defined ${eventId}`);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
module.exports = { emailEvent , EMAIL_EVENTS };
|