From cbc58d2f11c72101c2613e48898cdf87256b3395 Mon Sep 17 00:00:00 2001 From: "Shane M. Clements" Date: Sat, 9 Apr 2016 10:04:39 -0600 Subject: [PATCH 1/3] Added code for redirects and now redirecting the donation URL to the proper location. Fixes #412. --- server/handler.js | 5 +++++ server/index.js | 5 ++--- server/routes.json | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/server/handler.js b/server/handler.js index 0a2858664..cb79e71ef 100644 --- a/server/handler.js +++ b/server/handler.js @@ -10,6 +10,11 @@ var config = require('./config'); * Constructor */ function Handler (route) { + // Handle redirects + if (route.redirect) { + return (req, res) => res.redirect(route.redirect); + } + // Route definition defaults(route, config); diff --git a/server/index.js b/server/index.js index 9931888a5..443c0a508 100644 --- a/server/index.js +++ b/server/index.js @@ -45,10 +45,9 @@ app.use(function (req, res, next) { }); // Bind routes -for (var routeId in routes) { - var route = routes[routeId]; +routes.forEach(route => { app.get(route.pattern, handler(route)); -} +}); if (typeof process.env.NODE_SENTRY_DSN === 'string') { var raven = require('raven'); diff --git a/server/routes.json b/server/routes.json index 7867f964a..c7cac924a 100644 --- a/server/routes.json +++ b/server/routes.json @@ -43,5 +43,9 @@ "pattern": "/wedo", "view": "wedo2", "title": "LEGO WeDo 2.0" + }, + { + "pattern": "/info/donate/", + "redirect": "https://secure.donationpay.org/scratchfoundation/" } ] From a6be92448baa5147476270b76593da0eb4d7bd78 Mon Sep 17 00:00:00 2001 From: "Shane M. Clements" Date: Sat, 9 Apr 2016 10:39:55 -0600 Subject: [PATCH 2/3] Fixed linting errors and webpack config for redirect routes. --- .eslintrc | 3 ++- server/handler.js | 5 ++--- webpack.config.js | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.eslintrc b/.eslintrc index a554d53e3..842a0b83b 100644 --- a/.eslintrc +++ b/.eslintrc @@ -20,7 +20,8 @@ "formatMessage": true }, "ecmaFeatures": { - "jsx": true + "jsx": true, + "arrowFunctions": true }, "plugins": [ "react" diff --git a/server/handler.js b/server/handler.js index cb79e71ef..1022b50e7 100644 --- a/server/handler.js +++ b/server/handler.js @@ -3,7 +3,6 @@ var defaults = require('lodash.defaults'); var fs = require('fs'); var mustache = require('mustache'); var path = require('path'); - var config = require('./config'); /** @@ -12,8 +11,8 @@ var config = require('./config'); function Handler (route) { // Handle redirects if (route.redirect) { - return (req, res) => res.redirect(route.redirect); - } + return (req, res) => { res.redirect(route.redirect); }; + } // Route definition defaults(route, config); diff --git a/webpack.config.js b/webpack.config.js index 78474b3e1..99fd4f4b1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -9,7 +9,8 @@ var entry = { init: './src/init.js' }; routes.forEach(function (route) { - entry[route.view] = './src/views/' + route.view + '/' + route.view + '.jsx'; + if (!route.redirect) + entry[route.view] = './src/views/' + route.view + '/' + route.view + '.jsx'; }); // Config From 32e2fb55168123a33790951fd5863423636f6462 Mon Sep 17 00:00:00 2001 From: "Shane M. Clements" Date: Sat, 9 Apr 2016 11:07:21 -0600 Subject: [PATCH 3/3] Fixed another lint issue. --- webpack.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webpack.config.js b/webpack.config.js index 99fd4f4b1..cb9b120e0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -9,8 +9,9 @@ var entry = { init: './src/init.js' }; routes.forEach(function (route) { - if (!route.redirect) + if (!route.redirect) { entry[route.view] = './src/views/' + route.view + '/' + route.view + '.jsx'; + } }); // Config