diff --git a/app.js b/app.js index df9bcc4c61..1814d41115 100755 --- a/app.js +++ b/app.js @@ -514,6 +514,16 @@ app.post( storyController.upvote ); +app.get( + '/unsubscribe/:email', + resourcesController.unsubscribe +); + +app.get( + '/unsubscribed', + resourcesController.unsubscribed +); + app.all('/account', passportConf.isAuthenticated); app.get('/account/api', userController.getAccountAngular); diff --git a/controllers/resources.js b/controllers/resources.js index dada649cbf..9ee1d6df46 100644 --- a/controllers/resources.js +++ b/controllers/resources.js @@ -185,6 +185,35 @@ module.exports = { }); }, + unsubscribe: function unsubscribe(req, res) { + User.findOne({email: req.params.email}, function(err, user) { + console.log('---------'); + console.log(req.params); + console.log('---------'); + console.log(user); + if (user) { + if (err) { + return next(err); + } + user.sendMonthlyEmail = false; + user.save(function () { + if (err) { + return next(err); + } + res.redirect('/unsubscribed'); + }); + } else { + res.redirect('/unsubscribed'); + } + }); + }, + + unsubscribed: function unsubscribed(req, res) { + res.render('resources/unsubscribed', { + title: "You have been unsubscribed" + }); + }, + githubCalls: function(req, res) { var githubHeaders = {headers: {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1521.3 Safari/537.36'}, port:80 }; request('https://api.github.com/repos/freecodecamp/freecodecamp/pulls?client_id=' + secrets.github.clientID + '&client_secret=' + secrets.github.clientSecret, githubHeaders, function(err, status1, pulls) { diff --git a/models/User.js b/models/User.js index 5874bb2bdb..07804fadd8 100644 --- a/models/User.js +++ b/models/User.js @@ -141,6 +141,7 @@ var userSchema = new mongoose.Schema({ }, needsMigration: { type: Boolean, default: true }, finishedWaypoints: { type: Boolean, default: false }, + sendMonthlyEmail: { type: Boolean, default: true }, challengesHash: {} }); diff --git a/views/resources/unsubscribed.jade b/views/resources/unsubscribed.jade new file mode 100644 index 0000000000..d1de0b6398 --- /dev/null +++ b/views/resources/unsubscribed.jade @@ -0,0 +1,6 @@ +extends ../layout +block content + .panel.panel-info + .panel-body.text-center + h1 You have successfully been unsubscribed. + h2 Whatever you do, keep coding! :)