@emilgroup/payment-sdk 1.6.1-beta.1 → 1.6.1-beta.2

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/README.md CHANGED
@@ -17,11 +17,11 @@ Although this package can be used in both TypeScript and JavaScript, it is inten
17
17
  Navigate to the folder of your consuming project and run one of the following commands:
18
18
 
19
19
  ```
20
- npm install @emilgroup/payment-sdk@1.6.1-beta.1 --save
20
+ npm install @emilgroup/payment-sdk@1.6.1-beta.2 --save
21
21
  ```
22
22
  or
23
23
  ```
24
- yarn add @emilgroup/payment-sdk@1.6.1-beta.1
24
+ yarn add @emilgroup/payment-sdk@1.6.1-beta.2
25
25
  ```
26
26
 
27
27
  And then you can import `PaymentsApi`.
package/base.ts CHANGED
@@ -64,6 +64,7 @@ export interface RequestArgs {
64
64
  interface TokenData {
65
65
  accessToken?: string;
66
66
  username?: string;
67
+ permissions?: string;
67
68
  }
68
69
 
69
70
  const NETWORK_ERROR_MESSAGE = "Network Error";
@@ -77,7 +78,6 @@ const TOKEN_DATA = 'APP_TOKEN';
77
78
  export class BaseAPI {
78
79
  protected configuration: Configuration | undefined;
79
80
  private tokenData?: TokenData;
80
- private permissions?: string;
81
81
 
82
82
  constructor(configuration?: Configuration,
83
83
  protected basePath: string = BASE_PATH,
@@ -111,7 +111,11 @@ export class BaseAPI {
111
111
  }
112
112
 
113
113
  getPermissions(): Array<string> {
114
- return this.permissions.split(',');
114
+ if (!this.tokenData?.permissions) {
115
+ return [];
116
+ }
117
+
118
+ return this.tokenData.permissions.split(',');
115
119
  }
116
120
 
117
121
  async authorize(username: string, password: string): Promise<void> {
@@ -134,7 +138,7 @@ export class BaseAPI {
134
138
  this.configuration.accessToken = `Bearer ${accessToken}`;
135
139
  this.tokenData.username = username;
136
140
  this.tokenData.accessToken = accessToken;
137
- this.permissions = permissions;
141
+ this.tokenData.permissions = permissions;
138
142
 
139
143
  this.storeTokenData({
140
144
  ...this.tokenData
@@ -148,6 +152,16 @@ export class BaseAPI {
148
152
  throw new Error('Failed to refresh token.');
149
153
  }
150
154
 
155
+ const refreshTokenAxios = globalAxios.create()
156
+ refreshTokenAxios.interceptors.response.use(response => {
157
+ const { permissions } = response.data;
158
+
159
+ this.tokenData.permissions = permissions;
160
+ this.storeTokenData(this.tokenData);
161
+
162
+ return response;
163
+ })
164
+
151
165
  const options: AxiosRequestConfig = {
152
166
  method: 'POST',
153
167
  url: `${this.configuration.basePath}/authservice/v1/refresh-token`,
@@ -158,8 +172,7 @@ export class BaseAPI {
158
172
  withCredentials: true,
159
173
  };
160
174
 
161
- const response = await globalAxios.request<LoginClass>(options);
162
-
175
+ const response = await refreshTokenAxios.request<LoginClass>(options);
163
176
  return response.data;
164
177
  }
165
178
 
@@ -196,7 +209,7 @@ export class BaseAPI {
196
209
  try {
197
210
  const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
198
211
  const accessToken = `Bearer ${tokenString}`;
199
- this.permissions = permissions;
212
+ this.tokenData.permissions = permissions;
200
213
 
201
214
  delete originalConfig.headers['Authorization']
202
215
 
@@ -223,7 +236,7 @@ export class BaseAPI {
223
236
  try {
224
237
  const { accessToken: tokenString, permissions } = await this.refreshTokenInternal();
225
238
  const accessToken = `Bearer ${tokenString}`;
226
- this.permissions = permissions;
239
+ this.tokenData.permissions = permissions;
227
240
 
228
241
  _retry = true;
229
242
  originalConfig.headers['Authorization'] = accessToken;
package/dist/base.d.ts CHANGED
@@ -52,7 +52,6 @@ export declare class BaseAPI {
52
52
  protected axios: AxiosInstance;
53
53
  protected configuration: Configuration | undefined;
54
54
  private tokenData?;
55
- private permissions?;
56
55
  constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
57
56
  selectEnvironment(env: Environment): void;
58
57
  selectBasePath(path: string): void;
package/dist/base.js CHANGED
@@ -144,7 +144,11 @@ var BaseAPI = /** @class */ (function () {
144
144
  this.configuration.basePath = path;
145
145
  };
146
146
  BaseAPI.prototype.getPermissions = function () {
147
- return this.permissions.split(',');
147
+ var _a;
148
+ if (!((_a = this.tokenData) === null || _a === void 0 ? void 0 : _a.permissions)) {
149
+ return [];
150
+ }
151
+ return this.tokenData.permissions.split(',');
148
152
  };
149
153
  BaseAPI.prototype.authorize = function (username, password) {
150
154
  return __awaiter(this, void 0, void 0, function () {
@@ -170,7 +174,7 @@ var BaseAPI = /** @class */ (function () {
170
174
  this.configuration.accessToken = "Bearer ".concat(accessToken);
171
175
  this.tokenData.username = username;
172
176
  this.tokenData.accessToken = accessToken;
173
- this.permissions = permissions;
177
+ this.tokenData.permissions = permissions;
174
178
  this.storeTokenData(__assign({}, this.tokenData));
175
179
  return [2 /*return*/];
176
180
  }
@@ -179,7 +183,8 @@ var BaseAPI = /** @class */ (function () {
179
183
  };
180
184
  BaseAPI.prototype.refreshTokenInternal = function () {
181
185
  return __awaiter(this, void 0, void 0, function () {
182
- var username, options, response;
186
+ var username, refreshTokenAxios, options, response;
187
+ var _this = this;
183
188
  return __generator(this, function (_a) {
184
189
  switch (_a.label) {
185
190
  case 0:
@@ -187,6 +192,13 @@ var BaseAPI = /** @class */ (function () {
187
192
  if (!username) {
188
193
  throw new Error('Failed to refresh token.');
189
194
  }
195
+ refreshTokenAxios = axios_1.default.create();
196
+ refreshTokenAxios.interceptors.response.use(function (response) {
197
+ var permissions = response.data.permissions;
198
+ _this.tokenData.permissions = permissions;
199
+ _this.storeTokenData(_this.tokenData);
200
+ return response;
201
+ });
190
202
  options = {
191
203
  method: 'POST',
192
204
  url: "".concat(this.configuration.basePath, "/authservice/v1/refresh-token"),
@@ -196,7 +208,7 @@ var BaseAPI = /** @class */ (function () {
196
208
  data: { username: username },
197
209
  withCredentials: true,
198
210
  };
199
- return [4 /*yield*/, axios_1.default.request(options)];
211
+ return [4 /*yield*/, refreshTokenAxios.request(options)];
200
212
  case 1:
201
213
  response = _a.sent();
202
214
  return [2 /*return*/, response.data];
@@ -241,7 +253,7 @@ var BaseAPI = /** @class */ (function () {
241
253
  case 2:
242
254
  _a = _c.sent(), tokenString = _a.accessToken, permissions = _a.permissions;
243
255
  accessToken = "Bearer ".concat(tokenString);
244
- this.permissions = permissions;
256
+ this.tokenData.permissions = permissions;
245
257
  delete originalConfig.headers['Authorization'];
246
258
  originalConfig.headers['Authorization'] = accessToken;
247
259
  this.configuration.accessToken = accessToken;
@@ -267,7 +279,7 @@ var BaseAPI = /** @class */ (function () {
267
279
  case 7:
268
280
  _b = _c.sent(), tokenString = _b.accessToken, permissions = _b.permissions;
269
281
  accessToken = "Bearer ".concat(tokenString);
270
- this.permissions = permissions;
282
+ this.tokenData.permissions = permissions;
271
283
  _retry = true;
272
284
  originalConfig.headers['Authorization'] = accessToken;
273
285
  this.configuration.accessToken = accessToken;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emilgroup/payment-sdk",
3
- "version": "1.6.1-beta.1",
3
+ "version": "1.6.1-beta.2",
4
4
  "description": "OpenAPI client for @emilgroup/payment-sdk",
5
5
  "author": "OpenAPI-Generator Contributors",
6
6
  "keywords": [