Expose current gather API and add cors

This commit is contained in:
Chris Blanchard 2015-09-17 13:48:10 +01:00
parent 1fd8835d20
commit a8e5f29af1
4 changed files with 54 additions and 15 deletions

View file

@ -3,8 +3,12 @@
var path = require("path");
var winston = require("winston");
var config = require("./config.js");
var Gather = require("../lib/gather/gather_singleton");
var cors = require("cors");
module.exports = app => {
app.use(cors());
app.get("/", (request, response, next) => {
response.render("index.hbs", {
redirect: config.ensl_url,
@ -18,6 +22,11 @@ module.exports = app => {
});
});
app.get("/gathers/current", (request, response) => {
let gather = Gather.current;
response.status(200).json(gather.toJson());
});
app.get("*", (request, response) => {
response.status(404).render("404.hbs");
});

36
npm-shrinkwrap.json generated
View file

@ -963,7 +963,7 @@
},
"once": {
"version": "1.3.2",
"from": "once@>=1.3.0 <2.0.0",
"from": "once@>=1.3.0 <1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz",
"dependencies": {
"wrappy": {
@ -1045,6 +1045,18 @@
}
}
},
"cors": {
"version": "2.7.1",
"from": "cors@>=2.7.1 <3.0.0",
"resolved": "https://registry.npmjs.org/cors/-/cors-2.7.1.tgz",
"dependencies": {
"vary": {
"version": "1.0.1",
"from": "vary@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"
}
}
},
"express": {
"version": "4.13.3",
"from": "express@>=4.13.1 <4.14.0",
@ -1289,7 +1301,7 @@
"dependencies": {
"glob": {
"version": "5.0.14",
"from": "glob@>=5.0.13 <6.0.0",
"from": "glob@>=5.0.0 <6.0.0",
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.tgz",
"dependencies": {
"inflight": {
@ -2235,7 +2247,7 @@
"dependencies": {
"babel-core": {
"version": "5.8.24",
"from": "babel-core@>=5.6.21 <6.0.0",
"from": "babel-core@>=5.8.19 <6.0.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.24.tgz",
"dependencies": {
"babel-plugin-constant-folding": {
@ -3200,7 +3212,7 @@
},
"xtend": {
"version": "4.0.0",
"from": "xtend@>=4.0.0 <4.1.0",
"from": "xtend@>=4.0.0 <4.1.0-0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
}
}
@ -3588,7 +3600,7 @@
},
"through2": {
"version": "0.6.5",
"from": "through2@>=0.6.3 <0.7.0",
"from": "through2@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"dependencies": {
"readable-stream": {
@ -3970,7 +3982,7 @@
},
"through2": {
"version": "0.6.5",
"from": "through2@>=0.6.3 <0.7.0",
"from": "through2@>=0.6.0 <0.7.0",
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"dependencies": {
"readable-stream": {
@ -5122,9 +5134,9 @@
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz",
"dependencies": {
"hoek": {
"version": "2.16.0",
"version": "2.16.2",
"from": "hoek@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.0.tgz"
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.2.tgz"
},
"boom": {
"version": "2.8.0",
@ -5957,9 +5969,9 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
"dependencies": {
"is-buffer": {
"version": "1.0.2",
"version": "1.1.0",
"from": "is-buffer@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz"
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.0.tgz"
}
}
},
@ -5993,9 +6005,9 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
"dependencies": {
"is-buffer": {
"version": "1.0.2",
"version": "1.1.0",
"from": "is-buffer@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.0.2.tgz"
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.0.tgz"
}
}
},

View file

@ -28,6 +28,7 @@
"async": "~1.4.0",
"babel": "~5.8.21",
"cookie-parser": "~1.3.5",
"cors": "^2.7.1",
"express": "~4.13.1",
"express-handlebars": "~2.0.1",
"extend": "~3.0.0",

View file

@ -2,20 +2,37 @@
var helper = require("./helpers/index.js");
var request = require("supertest");
var assert = require("chai").assert;
var app = helper.app;
describe("Basic Spec", function () {
it ("serves main page", function (done) {
describe("Basic Spec", () => {
it ("serves main page", done => {
request(app)
.get("/")
.expect(200)
.end(done);
});
it ("returns 404 if page not found", function (done) {
it ("returns 404 if page not found", done => {
request(app)
.get("/foo")
.expect(404)
.end(done);
});
});
describe("Gathers API", () => {
describe("gathers/current", () => {
it ("returns the current gather", done => {
request(app)
.get("/gathers/current")
.expect(200)
.end((error, response) => {
if (error) return done(error);
assert.equal(response.body.gatherers.length, 0);
assert.equal(response.body.state, 'gathering');
done();
});
});
});
});