mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-25 00:28:31 -05:00
32 lines
1.5 KiB
CoffeeScript
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
|