diff options
| author | Adam Soltys <[email protected]> | 2015-12-11 11:28:18 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2015-12-11 11:29:30 -0800 |
| commit | f466c6aa4db08d953df9916fad8ba5d03020e0a0 (patch) | |
| tree | 14c139e53929cae7c7e39f5ad298780716be5c9a /app.js | |
| parent | 208311023aa6eb433d5e1201eafcd53fab0e6dbd (diff) | |
| download | coinos-server-f466c6aa4db08d953df9916fad8ba5d03020e0a0.tar.gz coinos-server-f466c6aa4db08d953df9916fad8ba5d03020e0a0.zip | |
Proxy blockcypher API requests
Diffstat (limited to 'app.js')
| -rw-r--r-- | app.js | 29 |
1 files changed, 23 insertions, 6 deletions
@@ -1,5 +1,6 @@ (function() { - var RedisStore, app, authorize, bodyParser, cache, config, cookieParser, express, fetchRates, fs, passport, path, request, session, sessionStore, sessions, transactions, users; + var RedisStore, app, authorize, bodyParser, cache, config, cookieParser, express, fetchRates, fs, passport, path, proxy, proxyContext, proxyMiddleware, proxyOptions, request, session, sessionStore, sessions, transactions, users, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; request = require('request'); @@ -17,6 +18,8 @@ fs = require('fs'); + proxyMiddleware = require('http-proxy-middleware'); + sessions = require("./routes/sessions")(passport); transactions = require("./routes/transactions"); @@ -31,6 +34,23 @@ ttl: 172800 }); + proxyContext = '/blockcypher'; + + proxyOptions = { + target: 'https://api.blockcypher.com', + changeOrigin: true, + pathRewrite: { + '^/blockcypher/': '/' + }, + onProxyReq: function(proxyReq, req, res) { + var symbol; + symbol = __indexOf.call(proxyReq.path, '?') >= 0 ? '&' : '?'; + return proxyReq.path += "" + symbol + "token=" + config.blockcypher_token; + } + }; + + proxy = proxyMiddleware(proxyContext, proxyOptions); + app = express(); app.enable('trust proxy'); @@ -43,6 +63,8 @@ app.use(express["static"](__dirname + '/public')); + app.use(proxy); + app.use(bodyParser.urlencoded({ extended: true })); @@ -137,11 +159,6 @@ }); }); - app.get('/token', cache, function(req, res) { - res.write(config.blockcypher_token); - return res.end(); - }); - app.get('/tips', cache, function(req, res) { return res.render('tips', { notice: true, |
