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 path = require("path");
var winston = require("winston"); var winston = require("winston");
var config = require("./config.js"); var config = require("./config.js");
var Gather = require("../lib/gather/gather_singleton");
var cors = require("cors");
module.exports = app => { module.exports = app => {
app.use(cors());
app.get("/", (request, response, next) => { app.get("/", (request, response, next) => {
response.render("index.hbs", { response.render("index.hbs", {
redirect: config.ensl_url, 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) => { app.get("*", (request, response) => {
response.status(404).render("404.hbs"); response.status(404).render("404.hbs");
}); });

36
npm-shrinkwrap.json generated
View file

@ -963,7 +963,7 @@
}, },
"once": { "once": {
"version": "1.3.2", "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", "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz",
"dependencies": { "dependencies": {
"wrappy": { "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": { "express": {
"version": "4.13.3", "version": "4.13.3",
"from": "express@>=4.13.1 <4.14.0", "from": "express@>=4.13.1 <4.14.0",
@ -1289,7 +1301,7 @@
"dependencies": { "dependencies": {
"glob": { "glob": {
"version": "5.0.14", "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", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.tgz",
"dependencies": { "dependencies": {
"inflight": { "inflight": {
@ -2235,7 +2247,7 @@
"dependencies": { "dependencies": {
"babel-core": { "babel-core": {
"version": "5.8.24", "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", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.24.tgz",
"dependencies": { "dependencies": {
"babel-plugin-constant-folding": { "babel-plugin-constant-folding": {
@ -3200,7 +3212,7 @@
}, },
"xtend": { "xtend": {
"version": "4.0.0", "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" "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
} }
} }
@ -3588,7 +3600,7 @@
}, },
"through2": { "through2": {
"version": "0.6.5", "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", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"dependencies": { "dependencies": {
"readable-stream": { "readable-stream": {
@ -3970,7 +3982,7 @@
}, },
"through2": { "through2": {
"version": "0.6.5", "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", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
"dependencies": { "dependencies": {
"readable-stream": { "readable-stream": {
@ -5122,9 +5134,9 @@
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz",
"dependencies": { "dependencies": {
"hoek": { "hoek": {
"version": "2.16.0", "version": "2.16.2",
"from": "hoek@>=2.0.0 <3.0.0", "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": { "boom": {
"version": "2.8.0", "version": "2.8.0",
@ -5957,9 +5969,9 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
"dependencies": { "dependencies": {
"is-buffer": { "is-buffer": {
"version": "1.0.2", "version": "1.1.0",
"from": "is-buffer@>=1.0.2 <2.0.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", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz",
"dependencies": { "dependencies": {
"is-buffer": { "is-buffer": {
"version": "1.0.2", "version": "1.1.0",
"from": "is-buffer@>=1.0.2 <2.0.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", "async": "~1.4.0",
"babel": "~5.8.21", "babel": "~5.8.21",
"cookie-parser": "~1.3.5", "cookie-parser": "~1.3.5",
"cors": "^2.7.1",
"express": "~4.13.1", "express": "~4.13.1",
"express-handlebars": "~2.0.1", "express-handlebars": "~2.0.1",
"extend": "~3.0.0", "extend": "~3.0.0",

View file

@ -2,20 +2,37 @@
var helper = require("./helpers/index.js"); var helper = require("./helpers/index.js");
var request = require("supertest"); var request = require("supertest");
var assert = require("chai").assert;
var app = helper.app; var app = helper.app;
describe("Basic Spec", function () { describe("Basic Spec", () => {
it ("serves main page", function (done) { it ("serves main page", done => {
request(app) request(app)
.get("/") .get("/")
.expect(200) .expect(200)
.end(done); .end(done);
}); });
it ("returns 404 if page not found", function (done) { it ("returns 404 if page not found", done => {
request(app) request(app)
.get("/foo") .get("/foo")
.expect(404) .expect(404)
.end(done); .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();
});
});
});
}); });