@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.
@@ -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;
@@ -1 +1,9 @@
1
- export declare const graphClient: import("axios").AxiosInstance;
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
+ }
@@ -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.graphClient = void 0;
26
- const qs = __importStar(require("qs"));
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
- const getCredentials = async () => {
32
- const clientIdParam = `/${config_1.config.env}/auth/serviceClientId`;
33
- const clientSecretParam = `/${config_1.config.env}/auth/serviceClientSecret`;
34
- const paramsByKey = await (0, params_1.getParams)([clientIdParam, clientSecretParam]);
35
- const { data } = await axios_1.default.post(config_1.config.authEndpoint, qs.stringify({
36
- grant_type: 'client_credentials',
37
- scope: 'spritz/service',
38
- client_id: paramsByKey[clientIdParam],
39
- client_secret: paramsByKey[clientSecretParam],
40
- }));
41
- return data;
42
- };
43
- const getMaxAge = (res) => {
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;
@@ -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
- try {
14
- const { data } = await graphClient_1.graphClient.post('', {
15
- query,
16
- });
17
- console.log(data);
18
- }
19
- catch (e) {
20
- console.error(e);
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
@@ -1 +1,3 @@
1
1
  export * from './graphClient';
2
+ export * from './credentials';
3
+ export * from './serviceClient';
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);
@@ -0,0 +1,2 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ export declare const createServiceClient: (config: AxiosRequestConfig) => import("axios").AxiosInstance;
@@ -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.0",
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": "5bf0766fae7a16e910652c4f7516197192568ead"
48
+ "gitHead": "13eb8e8ad722fbf5c9676cef8862619e5d5a6b74"
49
49
  }