mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-01 03:16:56 -05:00
33 lines
1.5 KiB
CoffeeScript
33 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
|