-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi-proxy.js
More file actions
49 lines (42 loc) · 1.49 KB
/
api-proxy.js
File metadata and controls
49 lines (42 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var requestProxy = require('express-request-proxy');
var apiProxy = function () {
var proxySunlightCongress = function (req, res) {
console.log('Routing for sunglight api', req.params[0]);
(requestProxy({
url: 'https://congress.api.sunlightfoundation.com/' + req.params[0],
headers: { 'X-APIKEY': process.env.SUNLIGHT_API_KEY },
}))(req, res);
};
var proxySunlightStates = function (req, res) {
req.query.apikey = process.env.SUNLIGHT_API_KEY;
(requestProxy({
url: 'http://openstates.org/api/v1/' + req.params[0],
}))(req, res);
};
var proxySunlightFinance = function (req, res) {
req.query.apikey = process.env.SUNLIGHT_API_KEY;
(requestProxy({
url: 'http://realtime.influenceexplorer.com/api//' + req.params[0],
}))(req, res);
};
var proxyOpenSecrets = function (req, res) {
req.query.apikey = process.env.OPENSECRETS_API_KEY;
(requestProxy({
url: 'http://www.opensecrets.org/api/',
}))(req, res);
};
var proxyNewYorkTimes = function (req, res) {
req.query['api-key'] = process.env.NYT_API_KEY;
(requestProxy({
url: 'http://api.nytimes.com/svc/politics/v3/us/legislative/congress/members/' + req.params[0],
}))(req, res);
};
return {
proxySunlightFinance: proxySunlightFinance,
proxySunlightStates: proxySunlightStates,
proxySunlightCongress: proxySunlightCongress,
proxyOpenSecrets: proxyOpenSecrets,
proxyNewYorkTimes: proxyNewYorkTimes,
};
};
module.exports = apiProxy();