Skip to content

Instantly share code, notes, and snippets.

@dsernst
Last active October 8, 2015 08:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dsernst/05ffac35cf294d92d994 to your computer and use it in GitHub Desktop.
Save dsernst/05ffac35cf294d92d994 to your computer and use it in GitHub Desktop.
Code to calculate weekly 'stache growth
/* eslint-env node */
module['exports'] = function echoHttp (hook) {
console.log('hook.req', hook.req.method)
// console.log('hook.params', hook.params['attachment-1']['body-plain'])
console.log('hook.params', hook.params)
if (hook.req.method === 'POST') {
console.log('in POST request')
}
hook.res.end(JSON.stringify(hook.params, true, '\t'))
}
var _ = require('lodash')
// var users = _.indexBy(require('./users.js'), 'emailAddress')
// var mg = new Mailgun(process.env.MAILGUN_KEY)
function parseEmail(reqBody) {
var emailAddress = reqBody.sender
var body = reqBody['body-plain']
// console.log(body)
var weeklySpentPrefix = 'You spent $'
var weeklySpentSuffix = ' over the past 7 days.'
var weeklySpent = body.split(weeklySpentPrefix)[1].split(weeklySpentSuffix)[0]
console.log('emailAddress:', emailAddress)
console.log('weeklySpent:', weeklySpent)
//getStats(emailAddress, weeklySpent)
}
function getStats(emailAddress, weeklySpent) {
var user = users[emailAddress]
if (_.isUndefined(user)) {
console.error('User ' + emailAddress + ' not found.')
return
}
console.log('user:', user)
var percentageSaved = (user.weeklyIncome - weeklySpent) / user.weeklyIncome
percentageSaved = _.round(percentageSaved * 100)
console.log('percentageSaved:', percentageSaved + '%')
//sendMessage(user.deliveryAddress, percentageSaved)
}
function sendMessage(recipient, percentageSaved) {
mg.sendText(
'auto@stache.dsernst.com',
recipient,
'Stache Calculator',
'You saved ' + percentageSaved + '% last week.',
function (err) {
if (err) {
console.error(err)
} else {
console.log('mg.sendText successful.')
}
}
)
}
// parseEmail(require('./sample-body.js'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment