Added Delighted feedback emails.

This commit is contained in:
Nick Winter 2014-08-09 23:11:26 -07:00
parent 6b2c079ff5
commit 9a1dd412c9
3 changed files with 32 additions and 3 deletions

27
server/delighted.coffee Normal file
View file

@ -0,0 +1,27 @@
config = require '../server_config'
request = require 'request'
log = require 'winston'
DELIGHTED_EMAIL_DELAY = 1 * 86400 # in seconds
DELIGHTED_EMAIL_DELAY = 10
module.exports.addDelightedUser = addDelightedUser = (user) ->
return unless key = config.mail.delightedAPIKey
#return unless user.isEmailSubscriptionEnabled 'generalNews' # Doesn't work? Just returns undefined...
return if user.get('emails')?.generalNews?.enabled is false # Workaround.
name = user.get('name')
if first = user.get('firstName') and last = user.get('lastName')
name = first + ' ' + last
form =
email: user.get('email')
name: name
delay: DELIGHTED_EMAIL_DELAY
properties:
id: user.id
locale: user.get('preferredLanguage')
testGroupNumber: user.get('testGroupNumber')
gender: user.get('gender')
lastLevel: user.get('lastLevel')
request.post {uri: "https://#{key}:@api.delightedapp.com/v1/people.json", form: form}, (err, res, body) ->
return log.error 'Error sending Delighted request:', err or body if err or /error/.test body
#log.info "Got DelightedApp response: #{body}"

View file

@ -7,6 +7,7 @@ log = require 'winston'
plugins = require '../plugins/plugins'
sendwithus = require '../sendwithus'
delighted = require '../delighted'
UserSchema = new mongoose.Schema({
dateCreated:
@ -134,7 +135,7 @@ UserSchema.methods.register = (done) ->
address: @get 'email'
sendwithus.api.send data, (err, result) ->
log.error "sendwithus post-save error: #{err}, result: #{result}" if err
delighted.addDelightedUser @
UserSchema.pre('save', (next) ->
@set('emailLower', @get('email')?.toLowerCase())

View file

@ -12,8 +12,8 @@ config.mongo =
host: process.env.COCO_MONGO_HOST or 'localhost'
db: process.env.COCO_MONGO_DATABASE_NAME or 'coco'
mongoose_replica_string: process.env.COCO_MONGO_MONGOOSE_REPLICA_STRING or ''
config.redis =
config.redis =
port: process.env.COCO_REDIS_PORT or 6379
host: process.env.COCO_REDIS_HOST or 'localhost'
@ -33,6 +33,7 @@ config.mail =
mailchimpWebhook: process.env.COCO_MAILCHIMP_WEBHOOK or '/mail/webhook'
sendwithusAPIKey: process.env.COCO_SENDWITHUS_API_KEY or ''
stackleadAPIKey: process.env.COCO_STACKLEAD_API_KEY or ''
delightedAPIKey: process.env.COCO_DELIGHTED_API_KEY or ''
cronHandlerPublicIP: process.env.COCO_CRON_PUBLIC_IP or ''
cronHandlerPrivateIP: process.env.COCO_CRON_PRIVATE_IP or ''