From f5f1c8542bb4a01542f8a07046c6bdc8e7348672 Mon Sep 17 00:00:00 2001 From: Inga Lovinde <52715130+inga-lovinde@users.noreply.github.com> Date: Fri, 6 Nov 2015 14:22:46 +0300 Subject: [PATCH] pageFromGithub implemented --- BuildServer/app.js | 1 + BuildServer/routes/status.js | 32 +++++++++++++++++++++++--------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/BuildServer/app.js b/BuildServer/app.js index 0c26c57..77b8014 100644 --- a/BuildServer/app.js +++ b/BuildServer/app.js @@ -41,6 +41,7 @@ app.get('/github/postreceive', function (req, res) { app.get('/manual', routes.manual.get); app.post('/manual', routes.manual.post); app.get('/status/:owner/:reponame/:branch/:rev?', routes.status.page); +app.get('/pos-github.payonline.ru/*', routes.status.pageFromGithub); app.get('/status.svg', routes.status.image); app.get('/release/:owner/:reponame/:branch/:rev', routes.release); app.get('/artifact/:owner/:reponame/:branch/:rev/*', routes.artifact); diff --git a/BuildServer/routes/status.js b/BuildServer/routes/status.js index 4c731a6..0632943 100644 --- a/BuildServer/routes/status.js +++ b/BuildServer/routes/status.js @@ -5,8 +5,8 @@ var fs = require('fs'), glob = require('glob'), statusProcessor = require('../lib/status-processor'); -var parseOptionsFromReferer = function (req, callback) { - var pathParts = (url.parse(req.headers.referer || "").pathname || "").split("/"); +var parseOptionsFromReferer = function (path, callback) { + var pathParts = path.split("/"); var result = {}; if (pathParts.length < 3) { return callback("BadRequest", result); @@ -19,8 +19,15 @@ var parseOptionsFromReferer = function (req, callback) { return callback(null, result); }; +var createShowReport = function (res) { + return function (err, options) { + options = options || {}; + options.err = err; + res.render('status', options); + } +} + exports.image = function(req, res) { - console.log(req.headers); var handle = function (err, options) { if (err === "ReportFileNotFound") { options.status = "Building"; @@ -45,7 +52,7 @@ exports.image = function(req, res) { res.render('status-image', options); }; - parseOptionsFromReferer(req, function (err, options) { + parseOptionsFromReferer(url.parse(req.headers.referer || "").pathname || "", function (err, options) { if (err) { return handle(err, options); } @@ -65,9 +72,16 @@ exports.page = function(req, res) { rev: req.params.rev }; - statusProcessor.getReport(req.app, options, function (err, options) { - options = options || {}; - options.err = err; - res.render('status', options); - }); + statusProcessor.getReport(req.app, options, createShowReport(res)); }; + +exports.pageFromGithub = function (req, res) { + parseOptionsFromReferer(req.params[0], function (err, options) { + if (err) { + return showReport(err, options); + } + + return statusProcessor.getReport(req.app, options, createShowReport(res)); + }); +} +