@spritz-finance/service-client 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/credentials.d.ts +1 -0
- package/lib/credentials.js +42 -0
- package/lib/graphClient.d.ts +9 -1
- package/lib/graphClient.js +15 -53
- package/lib/graphClient.test.js +10 -9
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/serviceClient.d.ts +2 -0
- package/lib/serviceClient.js +25 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getServiceCredentials: () => Promise<any>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.getServiceCredentials = void 0;
|
|
26
|
+
const config_1 = require("./config");
|
|
27
|
+
const params_1 = require("./params");
|
|
28
|
+
const axios_1 = __importDefault(require("axios"));
|
|
29
|
+
const qs = __importStar(require("qs"));
|
|
30
|
+
const getServiceCredentials = async () => {
|
|
31
|
+
const clientIdParam = `/${config_1.config.env}/auth/serviceClientId`;
|
|
32
|
+
const clientSecretParam = `/${config_1.config.env}/auth/serviceClientSecret`;
|
|
33
|
+
const paramsByKey = await (0, params_1.getParams)([clientIdParam, clientSecretParam]);
|
|
34
|
+
const { data } = await axios_1.default.post(config_1.config.authEndpoint, qs.stringify({
|
|
35
|
+
grant_type: 'client_credentials',
|
|
36
|
+
scope: 'spritz/service',
|
|
37
|
+
client_id: paramsByKey[clientIdParam],
|
|
38
|
+
client_secret: paramsByKey[clientSecretParam],
|
|
39
|
+
}));
|
|
40
|
+
return data;
|
|
41
|
+
};
|
|
42
|
+
exports.getServiceCredentials = getServiceCredentials;
|
package/lib/graphClient.d.ts
CHANGED
|
@@ -1 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
export declare class GraphClient {
|
|
3
|
+
client: AxiosInstance;
|
|
4
|
+
constructor();
|
|
5
|
+
query<T = any>(graphQLQueryBody: any): Promise<{
|
|
6
|
+
data: T;
|
|
7
|
+
errors?: any;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
package/lib/graphClient.js
CHANGED
|
@@ -1,56 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.
|
|
26
|
-
const
|
|
27
|
-
const axios_1 = __importDefault(require("axios"));
|
|
28
|
-
const axios_token_interceptor_1 = __importDefault(require("axios-token-interceptor"));
|
|
29
|
-
const params_1 = require("./params");
|
|
3
|
+
exports.GraphClient = void 0;
|
|
4
|
+
const serviceClient_1 = require("./serviceClient");
|
|
30
5
|
const config_1 = require("./config");
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return res.expires_in * 1000;
|
|
45
|
-
};
|
|
46
|
-
const headerFormatter = (res) => {
|
|
47
|
-
return 'Bearer ' + res.access_token;
|
|
48
|
-
};
|
|
49
|
-
const interceptor = function (tokenProvider, authenticate) {
|
|
50
|
-
const getToken = tokenProvider.tokenCache(authenticate, { getMaxAge });
|
|
51
|
-
return tokenProvider({ getToken, headerFormatter });
|
|
52
|
-
};
|
|
53
|
-
exports.graphClient = axios_1.default.create({
|
|
54
|
-
baseURL: config_1.config.graphEndpoint,
|
|
55
|
-
});
|
|
56
|
-
exports.graphClient.interceptors.request.use(interceptor(axios_token_interceptor_1.default, getCredentials));
|
|
6
|
+
class GraphClient {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.client = (0, serviceClient_1.createServiceClient)({
|
|
9
|
+
baseURL: config_1.config.graphEndpoint,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async query(graphQLQueryBody) {
|
|
13
|
+
return this.client
|
|
14
|
+
.post('', graphQLQueryBody)
|
|
15
|
+
.then((res) => res.data);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.GraphClient = GraphClient;
|
package/lib/graphClient.test.js
CHANGED
|
@@ -9,15 +9,16 @@ query ASDF {
|
|
|
9
9
|
}
|
|
10
10
|
`;
|
|
11
11
|
describe('graphClient', () => {
|
|
12
|
+
const client = new graphClient_1.GraphClient();
|
|
12
13
|
it('should work', async () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
const { data, errors } = await client.query({
|
|
15
|
+
query,
|
|
16
|
+
});
|
|
17
|
+
expect(errors).toBeFalsy();
|
|
18
|
+
expect(data.getUsers).toEqual(expect.arrayContaining([
|
|
19
|
+
expect.objectContaining({
|
|
20
|
+
email: 'eliyahu@spritz.finance',
|
|
21
|
+
}),
|
|
22
|
+
]));
|
|
22
23
|
});
|
|
23
24
|
});
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -11,3 +11,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./graphClient"), exports);
|
|
14
|
+
__exportStar(require("./credentials"), exports);
|
|
15
|
+
__exportStar(require("./serviceClient"), exports);
|
package/lib/serviceClient.d.ts
CHANGED
package/lib/serviceClient.js
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createServiceClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const axios_token_interceptor_1 = __importDefault(require("axios-token-interceptor"));
|
|
9
|
+
const credentials_1 = require("./credentials");
|
|
10
|
+
const getMaxAge = (res) => {
|
|
11
|
+
return res.expires_in * 1000;
|
|
12
|
+
};
|
|
13
|
+
const headerFormatter = (res) => {
|
|
14
|
+
return 'Bearer ' + res.access_token;
|
|
15
|
+
};
|
|
16
|
+
const interceptor = function (tokenProvider, authenticate) {
|
|
17
|
+
const getToken = tokenProvider.tokenCache(authenticate, { getMaxAge });
|
|
18
|
+
return tokenProvider({ getToken, headerFormatter });
|
|
19
|
+
};
|
|
20
|
+
const createServiceClient = (config) => {
|
|
21
|
+
const serviceClient = axios_1.default.create(config);
|
|
22
|
+
serviceClient.interceptors.request.use(interceptor(axios_token_interceptor_1.default, credentials_1.getServiceCredentials));
|
|
23
|
+
return serviceClient;
|
|
24
|
+
};
|
|
25
|
+
exports.createServiceClient = createServiceClient;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spritz-finance/service-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Service client",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"coverageDirectory": "../coverage",
|
|
46
46
|
"testEnvironment": "node"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "13eb8e8ad722fbf5c9676cef8862619e5d5a6b74"
|
|
49
49
|
}
|