Skip to content

Instantly share code, notes, and snippets.

@facultymatt
Created September 18, 2013 04:04

Revisions

  1. facultymatt created this gist Sep 18, 2013.
    33 changes: 33 additions & 0 deletions email_module_pattern.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    // A design pattern for a mean.io notifier module

    var transport = null; // will store our connection to nodemailer
    var actions = ['generate_quote', 'generate_application', 'submit_application']; // actions allowed to email

    // There is no model
    exports.initModel() {}

    // There are no routes
    exports.initRoutes() {}

    exports.init(app, config) {
    // create transport from config settings
    // save transport
    }

    // call to send an email
    // action will determine which template to use
    // options should be the options object as required by template and nodemailer
    exports.notify(action, options) {

    // check for valid action
    // attempt to generate template
    // template success, send email with nodemailer transport
    // optionally send other notification options as needed

    }

    // render template
    generateTemplate(options, cb) {}

    sendEmail(options, cb) {}