mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-30 10:56:53 -05:00
Added an unsubscribe url for recruit notifications.
This commit is contained in:
parent
c85971e5e6
commit
f7035d4220
2 changed files with 29 additions and 7 deletions
|
@ -132,14 +132,24 @@ module.exports.setup = (app) ->
|
||||||
return errors.notFound res, "No user found with email '#{req.query.email}'"
|
return errors.notFound res, "No user found with email '#{req.query.email}'"
|
||||||
|
|
||||||
emails = _.clone(user.get('emails')) or {}
|
emails = _.clone(user.get('emails')) or {}
|
||||||
|
msg = ''
|
||||||
|
|
||||||
|
if req.query.recruitNotes
|
||||||
|
emails.recruitNotes ?= {}
|
||||||
|
emails.recruitNotes.enabled = false
|
||||||
|
msg = "Unsubscribed #{req.query.email} from recruiting emails."
|
||||||
|
|
||||||
|
else
|
||||||
|
msg = "Unsubscribed #{req.query.email} from all CodeCombat emails. Sorry to see you go!"
|
||||||
emailSettings.enabled = false for emailSettings in _.values(emails)
|
emailSettings.enabled = false for emailSettings in _.values(emails)
|
||||||
emails.generalNews ?= {}
|
emails.generalNews ?= {}
|
||||||
emails.generalNews.enabled = false
|
emails.generalNews.enabled = false
|
||||||
emails.anyNotes ?= {}
|
emails.anyNotes ?= {}
|
||||||
emails.anyNotes.enabled = false
|
emails.anyNotes.enabled = false
|
||||||
user.update {$set: {emails: emails, emailSubscriptions: []}}, {}, =>
|
|
||||||
|
user.update {$set: {emails: emails}}, {}, =>
|
||||||
return errors.serverError res, 'Database failure.' if err
|
return errors.serverError res, 'Database failure.' if err
|
||||||
res.send "Unsubscribed #{req.query.email} from all CodeCombat emails. Sorry to see you go! <p><a href='/account/settings'>Account settings</a></p>"
|
res.send msg + "<p><a href='/account/settings'>Account settings</a></p>"
|
||||||
res.end()
|
res.end()
|
||||||
|
|
||||||
module.exports.loginUser = loginUser = (req, res, user, send=true, next=null) ->
|
module.exports.loginUser = loginUser = (req, res, user, send=true, next=null) ->
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
require '../common'
|
require '../common'
|
||||||
request = require 'request'
|
request = require 'request'
|
||||||
|
User = require '../../../server/users/User'
|
||||||
|
|
||||||
urlLogin = getURL('/auth/login')
|
urlLogin = getURL('/auth/login')
|
||||||
urlReset = getURL('/auth/reset')
|
urlReset = getURL('/auth/reset')
|
||||||
|
@ -134,3 +135,14 @@ describe '/auth/reset', ->
|
||||||
form = req.form()
|
form = req.form()
|
||||||
form.append('username', 'scott@gmail.com')
|
form.append('username', 'scott@gmail.com')
|
||||||
form.append('password', 'nada')
|
form.append('password', 'nada')
|
||||||
|
|
||||||
|
describe '/auth/unsubscribe', ->
|
||||||
|
|
||||||
|
it 'removes just recruitment emails if you include ?recruitNotes=1', (done) ->
|
||||||
|
loginJoe (joe) ->
|
||||||
|
url = getURL('/auth/unsubscribe?recruitNotes=1&email='+joe.get('email'))
|
||||||
|
request.get url, (error, response) ->
|
||||||
|
expect(response.statusCode).toBe(200)
|
||||||
|
user = User.findOne(joe.get('_id')).exec (err, user) ->
|
||||||
|
expect(user.get('emails').recruitNotes.enabled).toBe(false)
|
||||||
|
done()
|
||||||
|
|
Loading…
Reference in a new issue