From 7d12ca2076c9c929087a3a4521a73fe7a2cad75e Mon Sep 17 00:00:00 2001 From: booo Date: Wed, 8 Feb 2012 14:45:10 +0100 Subject: [PATCH] move 'api' routes into own module --- node/routes/api.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++ node/server.js | 45 ++----------------------------------------- 2 files changed, 50 insertions(+), 43 deletions(-) create mode 100644 node/routes/api.js diff --git a/node/routes/api.js b/node/routes/api.js new file mode 100644 index 000000000..064abddf9 --- /dev/null +++ b/node/routes/api.js @@ -0,0 +1,48 @@ +var formidable = require('formidable'); +var log4js = require('log4js'); + +module.exports = function(app) +{ + var apiLogger = log4js.getLogger("API"); + + //This is for making an api call, collecting all post information and passing it to the apiHandler + var apiCaller = function(req, res, fields) + { + res.header("Content-Type", "application/json; charset=utf-8"); + + apiLogger.info("REQUEST, " + req.params.func + ", " + JSON.stringify(fields)); + + //wrap the send function so we can log the response + res._send = res.send; + res.send = function(response) + { + response = JSON.stringify(response); + apiLogger.info("RESPONSE, " + req.params.func + ", " + response); + + //is this a jsonp call, if yes, add the function call + if(req.query.jsonp) + response = req.query.jsonp + "(" + response + ")"; + + res._send(response); + }; + + //call the api handler + app.apiHandler.handle(req.params.func, fields, req, res); + }; + + //This is a api GET call, collect all post informations and pass it to the apiHandler + app.get('/api/1/:func', function(req, res) + { + apiCaller(req, res, req.query); + }); + + //This is a api POST call, collect all post informations and pass it to the apiHandler + app.post('/api/1/:func', function(req, res) + { + new formidable.IncomingForm().parse(req, function(err, fields, files) + { + apiCaller(req, res, fields); + }); + }); + +}; diff --git a/node/server.js b/node/server.js index 154184e99..ae890ba67 100644 --- a/node/server.js +++ b/node/server.js @@ -32,7 +32,6 @@ var express = require('express'); var path = require('path'); var minify = require('./utils/Minify'); var formidable = require('formidable'); -var apiHandler; var exportHandler; var importHandler; var exporthtml; @@ -118,7 +117,7 @@ async.waterfall([ exporthtml = require("./utils/ExportHtml"); exportHandler = require('./handler/ExportHandler'); importHandler = require('./handler/ImportHandler'); - apiHandler = require('./handler/APIHandler'); + app.apiHandler = require('./handler/APIHandler'); padManager = require('./db/PadManager'); securityManager = require('./db/SecurityManager'); socketIORouter = require("./handler/SocketIORouter"); @@ -293,48 +292,8 @@ async.waterfall([ importHandler.doImport(req, res, req.params.pad); }); }); - - var apiLogger = log4js.getLogger("API"); - //This is for making an api call, collecting all post information and passing it to the apiHandler - var apiCaller = function(req, res, fields) - { - res.header("Content-Type", "application/json; charset=utf-8"); - - apiLogger.info("REQUEST, " + req.params.func + ", " + JSON.stringify(fields)); - - //wrap the send function so we can log the response - res._send = res.send; - res.send = function(response) - { - response = JSON.stringify(response); - apiLogger.info("RESPONSE, " + req.params.func + ", " + response); - - //is this a jsonp call, if yes, add the function call - if(req.query.jsonp) - response = req.query.jsonp + "(" + response + ")"; - - res._send(response); - } - - //call the api handler - apiHandler.handle(req.params.func, fields, req, res); - } - - //This is a api GET call, collect all post informations and pass it to the apiHandler - app.get('/api/1/:func', function(req, res) - { - apiCaller(req, res, req.query) - }); - - //This is a api POST call, collect all post informations and pass it to the apiHandler - app.post('/api/1/:func', function(req, res) - { - new formidable.IncomingForm().parse(req, function(err, fields, files) - { - apiCaller(req, res, fields) - }); - }); + require('./routes/api')(app); require('./routes/debug')(app);