mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
move all rest components to separate modules
This commit is contained in:
+1
-23
@@ -38,29 +38,7 @@ function configure (wares, entries, settings) {
|
||||
// Some experiments
|
||||
app.use('/experiments', require('./api/experiments/')(app, wares));
|
||||
|
||||
// Status badge/text/json
|
||||
api.get('/status', function (req, res, next) {
|
||||
var status = {status: 'ok'};
|
||||
var badge = 'http://img.shields.io/badge/Nightscout-OK-green';
|
||||
return res.format({
|
||||
html: function ( ) {
|
||||
res.send("<h1>STATUS OK</h1>");
|
||||
},
|
||||
png: function ( ) {
|
||||
res.redirect(302, badge + '.png');
|
||||
},
|
||||
svg: function ( ) {
|
||||
res.redirect(302, badge + '.svg');
|
||||
},
|
||||
text: function ( ) {
|
||||
res.send("STATUS OK");
|
||||
},
|
||||
json: function ( ) {
|
||||
res.json(status);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
app.use('/status', require('./api/status')(app, wares));
|
||||
/**********\
|
||||
* Entries
|
||||
\**********/
|
||||
|
||||
@@ -18,7 +18,8 @@ function configure (app, wares, entries) {
|
||||
// json body types get handled as parsed json
|
||||
api.use(wares.bodyParser.json());
|
||||
// shortcut to use extension to specify output content-type
|
||||
api.use(require('express-extension-to-accept')([
|
||||
// api.use(require('express-extension-to-accept')([
|
||||
api.use(wares.extensions([
|
||||
'json', 'svg', 'csv', 'txt', 'png', 'html', 'tsv'
|
||||
]));
|
||||
// also support url-encoded content-type
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
|
||||
function create (env, entries, settings) {
|
||||
var express = require('express'),
|
||||
app = express( )
|
||||
;
|
||||
|
||||
var wares = require('../middleware/')(env);
|
||||
|
||||
// Only allow access to the API if API_SECRET is set on the server.
|
||||
app.disable('api');
|
||||
if (env.api_secret) {
|
||||
console.log("API_SECRET", env.api_secret);
|
||||
app.enable('api');
|
||||
}
|
||||
|
||||
// set up express basics
|
||||
app.set('title', 'Nightscout API v1');
|
||||
|
||||
/*
|
||||
* Start setting up routes
|
||||
*/
|
||||
|
||||
if (app.enabled('api')) {
|
||||
app.use('/experiments', require('./experiments/')(app, wares));
|
||||
}
|
||||
|
||||
/**********\
|
||||
* Entries
|
||||
\**********/
|
||||
app.use('/entries', require('./entries/')(app, wares, entries));
|
||||
|
||||
/**********\
|
||||
* Settings
|
||||
\**********/
|
||||
app.use('/settings', require('./settings/')(app, wares, settings));
|
||||
|
||||
app.use('/status', require('./status')(app, wares));
|
||||
return app;
|
||||
}
|
||||
|
||||
module.exports = create;
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
function configure (app, wares) {
|
||||
var express = require('express'),
|
||||
api = express.Router( )
|
||||
;
|
||||
|
||||
api.use(wares.extensions([
|
||||
'json', 'svg', 'csv', 'txt', 'png', 'html'
|
||||
]));
|
||||
// Status badge/text/json
|
||||
api.get('/', function (req, res, next) {
|
||||
var status = {status: 'ok'};
|
||||
var badge = 'http://img.shields.io/badge/Nightscout-OK-green';
|
||||
return res.format({
|
||||
html: function ( ) {
|
||||
res.send("<h1>STATUS OK</h1>");
|
||||
},
|
||||
png: function ( ) {
|
||||
res.redirect(302, badge + '.png');
|
||||
},
|
||||
svg: function ( ) {
|
||||
res.redirect(302, badge + '.svg');
|
||||
},
|
||||
text: function ( ) {
|
||||
res.send("STATUS OK");
|
||||
},
|
||||
json: function ( ) {
|
||||
res.json(status);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return api;
|
||||
}
|
||||
module.exports = configure;
|
||||
@@ -6,12 +6,17 @@ var wares = {
|
||||
bodyParser : require('body-parser')
|
||||
};
|
||||
|
||||
function extensions (list) {
|
||||
return require('express-extension-to-accept')(list);
|
||||
}
|
||||
|
||||
function configure (env) {
|
||||
var middle = {
|
||||
verifyAuthorization: wares.verifyAuthorization(env),
|
||||
sendJSONStatus: wares.sendJSONStatus( ),
|
||||
requireSSL: wares.requireSSL( ),
|
||||
bodyParser: wares.bodyParser
|
||||
bodyParser: wares.bodyParser,
|
||||
extensions: extensions
|
||||
};
|
||||
return middle;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ var express = require('express');
|
||||
///////////////////////////////////////////////////
|
||||
var entries = require('./lib/entries')(env.mongo_collection, store);
|
||||
var settings = require('./lib/settings')(env.settings_collection, store);
|
||||
var api = require('./lib/api')(env, entries, settings);
|
||||
var api = require('./lib/api/')(env, entries, settings);
|
||||
var pebble = require('./lib/pebble');
|
||||
///////////////////////////////////////////////////
|
||||
|
||||
@@ -45,17 +45,10 @@ var appInfo = package.name + ' ' + package.version;
|
||||
app.set('title', appInfo);
|
||||
app.enable('trust proxy'); // Allows req.secure test on heroku https connections.
|
||||
|
||||
// Only allow access to the API if API_SECRET is set on the server.
|
||||
if (env.api_secret) {
|
||||
var requireSSL = require('./lib/middleware/require-ssl')( );
|
||||
console.log("API_SECRET", env.api_secret);
|
||||
|
||||
// Display an error when you're not using SSL.
|
||||
app.use('/api/v1', requireSSL);
|
||||
|
||||
// Handle API requests.
|
||||
app.use('/api/v1', api);
|
||||
}
|
||||
app.use('/api/v1', api);
|
||||
|
||||
// pebble data
|
||||
app.get('/pebble', pebble(entries));
|
||||
|
||||
Reference in New Issue
Block a user