codecombat/server/routes/stacklead.coffee
2014-07-01 12:23:22 +08:00

32 lines
1.5 KiB
CoffeeScript

config = require '../../server_config'
request = require 'request'
log = require 'winston'
module.exports.setup = (app) ->
app.post '/stacklead', (req, res) ->
return res.end() unless req.user
email = req.body.email or req.user.get 'email'
sendStackLead email, req.user
return res.end()
module.exports.sendStackLead = sendStackLead = (email, user) ->
return unless key = config.mail.stackleadAPIKey
form = email: email, api_key: key
if user
form.first_name = firstName if firstName = user.get('firstName')
form.last_name = lastName if lastName = user.get('lastName')
if profile = user.get 'jobProfile'
form.name = name if name = profile.name
form.location = location if location = profile.city
form.location = location if location = profile.city
for link in (profile.links ? [])
form.linkedin = link.link if /linkedin/.test link.link
form.twitter = link.link if /twitter/.test link.link
form.company = company if company = profile.work?[0]?.employer
if linkedIn = user.get('signedEmployerAgreement')?.data
form.first_name = data.firstName if data.firstName
form.last_name = data.lastName if data.lastName
form.linkedin = data.publicProfileUrl if data.publicProfileUrl
data.company = company if company = data.positions?.values?[0]?.company?.name
request.post {uri: 'https://stacklead.com/api/leads', form: form}, (err, res, body) ->
return log.error 'Error sending StackLead request:', err or body if err or /error/.test body