-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapi.js
32 lines (25 loc) · 873 Bytes
/
api.js
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
const request = require("request");
const rp = require("request-promise");
const api = (
req,
{ useCallback = false, json = true, version = "v1", adminApi = false } = {}
) => {
let baseUrl = process.env.BACKEND_URL || "http://localhost:3030/api/";
const headers = {};
if (adminApi) {
baseUrl = process.env.ADMIN_API_URL || "http://localhost:4030/admin/api/";
headers["x-api-key"] = process.env.ADMIN_API_KEY || "thisisasupersecureapikeythatisabsolutelysave";
} else if (req && req.cookies && req.cookies.jwt) {
headers["Authorization"] =
(req.cookies.jwt.startsWith("Bearer ") ? "" : "Bearer ") +
req.cookies.jwt;
}
const handler = useCallback ? request : rp;
const apiRequest = {
baseUrl: new URL(version, baseUrl).href,
json,
headers,
};
return handler.defaults(apiRequest);
};
module.exports = { api };