Skip to content

Commit 62b98f1

Browse files
authored
SMP-3191 | @token-io/core v1.0.25 (#417)
* SMP-3191 | @token-io/core v1.0.25 * SMP-3191 | @token-io/core v1.0.25
1 parent 6f4b32d commit 62b98f1

File tree

10 files changed

+32535
-101
lines changed

10 files changed

+32535
-101
lines changed

app/package-lock.json

Lines changed: 18196 additions & 42 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/package-lock.json

Lines changed: 3756 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@token-io/core",
3-
"version": "1.0.24",
3+
"version": "1.0.25",
44
"description": "Token JavaScript Core SDK",
55
"license": "ISC",
66
"author": {

core/src/http/AdditionalHeaders.js

Lines changed: 0 additions & 17 deletions
This file was deleted.

core/src/http/AuthHttpClient.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import CustomerTrackingMetadataHeader from './CustomerTrackingMetadataHeader';
88
import DeveloperHeader from './DeveloperHeader';
99
import VersionHeader from './VersionHeader';
1010
import stringify from 'fast-json-stable-stringify';
11+
import setAdditionalHeaders from './setAdditionalHeaders';
1112

1213
/**
1314
* Client for making authenticated requests to the Token gateway.
15+
* defaultHeaders argument is for passing in optional headers like https://developer.token.io/token_rest_api_doc/content/0_-_common/request-headers.htm
1416
*/
1517
export class AuthHttpClient {
1618
constructor({
@@ -22,6 +24,7 @@ export class AuthHttpClient {
2224
loggingEnabled,
2325
customSdkUrl,
2426
customResponseInterceptor,
27+
defaultHeaders
2528
}) {
2629
if (!(config.urls[env] || customSdkUrl)) {
2730
throw new Error('Invalid environment string. Please use one of: ' +
@@ -41,7 +44,7 @@ export class AuthHttpClient {
4144
this._authHeader = new AuthHeader(customSdkUrl || config.urls[env], this);
4245

4346
this._developerKey = developerKey;
44-
47+
this.defaultHeaders = defaultHeaders;
4548
this._resetRequestInterceptor();
4649

4750
const errorHandler = new ErrorHandler(globalRpcErrorCallback);
@@ -625,6 +628,8 @@ export class AuthHttpClient {
625628
versionHeader.addVersionHeader(request);
626629
developerHeader.addDeveloperHeader(request);
627630
customerTrackingMetadataHeader.addCustomerTrackingMetadata(request, this._context);
631+
setAdditionalHeaders(request, this.defaultHeaders);
632+
628633
return request;
629634
});
630635
}

core/src/http/HttpClient.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import config from '../config.json';
22
import ErrorHandler from './ErrorHandler';
33
import DeveloperHeader from './DeveloperHeader';
44
import VersionHeader from './VersionHeader';
5-
import AdditionalHeaders from './AdditionalHeaders';
5+
import setAdditionalHeaders from './setAdditionalHeaders';
66
import Util from '../Util';
77
import axios from 'axios';
88

@@ -29,14 +29,12 @@ export class HttpClient {
2929
Util.setUpHttpErrorLogging(this._instance);
3030
}
3131
Util.setUpCustomResponseInterceptor(this._instance, customResponseInterceptor);
32-
3332
const versionHeader = new VersionHeader();
3433
const developerHeader = new DeveloperHeader(developerKey);
35-
const additionalHeaders = new AdditionalHeaders();
3634
this._instance.interceptors.request.use(request => {
3735
versionHeader.addVersionHeader(request);
3836
developerHeader.addDeveloperHeader(request);
39-
additionalHeaders.addAdditionalHeaders(request);
37+
setAdditionalHeaders(request);
4038
return request;
4139
});
4240

@@ -145,7 +143,7 @@ export class HttpClient {
145143
const request = {
146144
method: 'get',
147145
url: url,
148-
additionalHeaders: headers
146+
requestHeaders: headers
149147
};
150148
return this._instance(request);
151149
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export default function setAdditionalHeaders(config, defaultHeaders = {}) {
2+
// defaultHeaders are set when the http client class is instantiated and applies to all requests
3+
if (defaultHeaders) {
4+
config.headers = {...config.headers, ...defaultHeaders}
5+
}
6+
7+
// requestHeaders are set when a method fires and applies to only one request
8+
if (config.requestHeaders) {
9+
config.headers = {...config.headers, ...config.requestHeaders}
10+
}
11+
};

core/src/main/TokenClient.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export class TokenClient {
2525
ManualCryptoEngine: Class<MemoryCryptoEngine>;
2626
Util: Util;
2727
_unauthenticatedClient: HttpClient;
28+
defaultHeaders: Object;
2829

2930
constructor(options: {
3031
// Token environment to target, defaults to 'prd'
@@ -39,13 +40,16 @@ export class TokenClient {
3940
customSdkUrl?: string,
4041
// custom HTTP response interceptor for axios
4142
customResponseInterceptor?: Object,
43+
// default headers passed into a authHttpClient
44+
defaultHeaders?: Object
4245
} = {}) {
4346
this.options = options;
4447
this.options.developerKey = this.options.developerKey || config.devKey.default;
4548
this.KeyLevel = config.KeyLevel;
4649
this.Crypto = Crypto;
4750
this.MemoryCryptoEngine = MemoryCryptoEngine;
4851
this.ManualCryptoEngine = ManualCryptoEngine;
52+
this.setDefaultHeaders(options.defaultHeaders);
4953
}
5054

5155
/**
@@ -127,6 +131,7 @@ export class TokenClient {
127131
memberId,
128132
cryptoEngine: engine,
129133
...this.options,
134+
defaultHeaders: this.getDefaultHeaders()
130135
});
131136
});
132137
}
@@ -181,4 +186,22 @@ export class TokenClient {
181186
return res.data.countries;
182187
});
183188
}
189+
190+
/**
191+
* Sets default headers passed into authHttpClient
192+
*
193+
* @param defaultHeaders - object with string values passed into axios headers
194+
*/
195+
setDefaultHeaders(defaultHeaders: Object) {
196+
this.defaultHeaders = defaultHeaders || {};
197+
}
198+
199+
/**
200+
* Gets default headers passed into authHttpClient. Used to understand what default headers are existing
201+
*
202+
* @return object with string values
203+
*/
204+
getDefaultHeaders() {
205+
return this.defaultHeaders;
206+
}
184207
}

0 commit comments

Comments
 (0)