|
|
- var bodyParser = require('body-parser');
- var express = require('express');
- var passport = require('passport');
- var Strategy = require('passport-custom').Strategy;
- var request = require('request');
- var dotEnv = require('dot-env');
- var DB = require('./database.js');
-
- var app = express();
-
-
- app.use(bodyParser.json());
- app.use(bodyParser.urlencoded({extended:false}));
- app.use(passport.initialize());
-
- // Custom Strategy
- passport.use(new Strategy(DB.DatabaseLookup));
- app.use('*', passport.authenticate('custom', { session: false }));
-
- // Main Route /
- app.all('*', function(req, res, next) {
- // Lookup client
- var baseUrl = DB.ClientLookup(req.body.client_id, function(err, url) {
- if (err) {
- console.log(err);
- return res.sendStatus(404);
- }
- if (!url) {
- console.log('No Results');
- return res.sendStatus(400);
- }
-
- // Perform request on API
- console.log(req.body._method);
- console.log(url);
- console.log(req.path);
-
- var method = req.body._method || req.method;
- request(
- {
- method : method,
- uri : url + req.path,
- multipart : [{
- 'content-type' : 'application/json',
- 'body' : JSON.stringify(req.body.params) || ''
- }]
- },
- function(error, response, body) {
- if (!error && response.statusCode == 200) {
- var request = {
- "ok" : response.statusCode==200?true:false,
- "baseUrl" : url,
- "body" : req.body,
- "method" : method,
- "ProxyRequest" : req.body.params,
- "originalUrl" : req.originalUrl,
- "path" : req.path,
- "protocol" : req.protocol,
- "query" : req.query,
- "secure" : req.secure,
- "signedCookies" : req.signedCookies,
- "response" : JSON.parse(body),
- }
- res.json(request);
- } else {
- //console.log('Error code : ' + response.statusCode);
- console.log('Error message : ' + error);
- }
- }
- );
- });
- });
-
- var port = process.env.PORT;
-
- app.listen(port, '127.0.0.1', function () {
- console.log('Example app listening at http://%s:%s', '127.0.0.1', port);
- });
|