'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 };