@emilgroup/payment-sdk-node 1.21.1-beta.27 → 1.21.1-beta.29
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 +2 -2
- package/base.ts +45 -3
- package/dist/base.d.ts +11 -2
- package/dist/base.js +42 -3
- package/package.json +1 -1
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-node@1.21.1-beta.
|
|
20
|
+
npm install @emilgroup/payment-sdk-node@1.21.1-beta.29 --save
|
|
21
21
|
```
|
|
22
22
|
or
|
|
23
23
|
```
|
|
24
|
-
yarn add @emilgroup/payment-sdk-node@1.21.1-beta.
|
|
24
|
+
yarn add @emilgroup/payment-sdk-node@1.21.1-beta.29
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
And then you can import `PaymentsApi`.
|
package/base.ts
CHANGED
|
@@ -44,6 +44,16 @@ export interface LoginClass {
|
|
|
44
44
|
permissions: string;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
export interface SwitchWorkspaceRequest {
|
|
48
|
+
username: string;
|
|
49
|
+
targetWorkspace: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface SwitchWorkspaceResponseClass {
|
|
53
|
+
accessToken: string;
|
|
54
|
+
permissions: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
47
57
|
export enum Environment {
|
|
48
58
|
Production = 'https://apiv2.emil.de',
|
|
49
59
|
Test = 'https://apiv2-test.emil.de',
|
|
@@ -94,13 +104,13 @@ export class BaseAPI {
|
|
|
94
104
|
this.attachInterceptor(axios);
|
|
95
105
|
}
|
|
96
106
|
|
|
97
|
-
async initialize(env: Environment = Environment.Production) {
|
|
107
|
+
async initialize(env: Environment = Environment.Production, targetWorkspace?: string) {
|
|
98
108
|
this.configuration.basePath = env;
|
|
99
109
|
|
|
100
110
|
await this.loadCredentials();
|
|
101
111
|
|
|
102
112
|
if (this.username) {
|
|
103
|
-
await this.authorize(this.username, this.password);
|
|
113
|
+
await this.authorize(this.username, this.password, targetWorkspace);
|
|
104
114
|
this.password = null; // to avoid keeping password loaded in memory.
|
|
105
115
|
}
|
|
106
116
|
}
|
|
@@ -150,7 +160,7 @@ export class BaseAPI {
|
|
|
150
160
|
this.configuration.basePath = env;
|
|
151
161
|
}
|
|
152
162
|
|
|
153
|
-
async authorize(username: string, password: string): Promise<void> {
|
|
163
|
+
async authorize(username: string, password: string, targetWorkspace?: string): Promise<void> {
|
|
154
164
|
const options: AxiosRequestConfig = {
|
|
155
165
|
method: 'POST',
|
|
156
166
|
url: `${this.configuration.basePath}/authservice/v1/login`,
|
|
@@ -170,6 +180,38 @@ export class BaseAPI {
|
|
|
170
180
|
|
|
171
181
|
const refreshToken = this.extractRefreshToken(response)
|
|
172
182
|
this.configuration.refreshToken = refreshToken;
|
|
183
|
+
|
|
184
|
+
// Switch workspace if provided
|
|
185
|
+
if (targetWorkspace) {
|
|
186
|
+
await this.switchWorkspace(targetWorkspace);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
async switchWorkspace(targetWorkspace: string): Promise<void> {
|
|
191
|
+
const options: AxiosRequestConfig = {
|
|
192
|
+
method: 'POST',
|
|
193
|
+
url: `${this.configuration.basePath}/authservice/v1/workspaces/switch`,
|
|
194
|
+
headers: {
|
|
195
|
+
'Content-Type': 'application/json',
|
|
196
|
+
'Authorization': `Bearer ${this.configuration.accessToken}`,
|
|
197
|
+
'Cookie': this.configuration.refreshToken,
|
|
198
|
+
},
|
|
199
|
+
data: {
|
|
200
|
+
username: this.configuration.username,
|
|
201
|
+
targetWorkspace,
|
|
202
|
+
} as SwitchWorkspaceRequest,
|
|
203
|
+
withCredentials: true,
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
const response = await globalAxios.request<SwitchWorkspaceResponseClass>(options);
|
|
207
|
+
|
|
208
|
+
const { data: { accessToken } } = response;
|
|
209
|
+
this.configuration.accessToken = `Bearer ${accessToken}`;
|
|
210
|
+
|
|
211
|
+
const refreshToken = this.extractRefreshToken(response);
|
|
212
|
+
if (refreshToken) {
|
|
213
|
+
this.configuration.refreshToken = refreshToken;
|
|
214
|
+
}
|
|
173
215
|
}
|
|
174
216
|
|
|
175
217
|
async refreshTokenInternal(): Promise<string> {
|
package/dist/base.d.ts
CHANGED
|
@@ -26,6 +26,14 @@ export interface LoginClass {
|
|
|
26
26
|
accessToken: string;
|
|
27
27
|
permissions: string;
|
|
28
28
|
}
|
|
29
|
+
export interface SwitchWorkspaceRequest {
|
|
30
|
+
username: string;
|
|
31
|
+
targetWorkspace: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SwitchWorkspaceResponseClass {
|
|
34
|
+
accessToken: string;
|
|
35
|
+
permissions: string;
|
|
36
|
+
}
|
|
29
37
|
export declare enum Environment {
|
|
30
38
|
Production = "https://apiv2.emil.de",
|
|
31
39
|
Test = "https://apiv2-test.emil.de",
|
|
@@ -55,12 +63,13 @@ export declare class BaseAPI {
|
|
|
55
63
|
private username?;
|
|
56
64
|
private password?;
|
|
57
65
|
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
|
|
58
|
-
initialize(env?: Environment): Promise<void>;
|
|
66
|
+
initialize(env?: Environment, targetWorkspace?: string): Promise<void>;
|
|
59
67
|
private loadCredentials;
|
|
60
68
|
private readConfigFile;
|
|
61
69
|
private readEnvVariables;
|
|
62
70
|
selectEnvironment(env: Environment): void;
|
|
63
|
-
authorize(username: string, password: string): Promise<void>;
|
|
71
|
+
authorize(username: string, password: string, targetWorkspace?: string): Promise<void>;
|
|
72
|
+
switchWorkspace(targetWorkspace: string): Promise<void>;
|
|
64
73
|
refreshTokenInternal(): Promise<string>;
|
|
65
74
|
private extractRefreshToken;
|
|
66
75
|
getConfiguration(): Configuration;
|
package/dist/base.js
CHANGED
|
@@ -162,7 +162,7 @@ var BaseAPI = /** @class */ (function () {
|
|
|
162
162
|
}
|
|
163
163
|
this.attachInterceptor(axios);
|
|
164
164
|
}
|
|
165
|
-
BaseAPI.prototype.initialize = function (env) {
|
|
165
|
+
BaseAPI.prototype.initialize = function (env, targetWorkspace) {
|
|
166
166
|
if (env === void 0) { env = Environment.Production; }
|
|
167
167
|
return __awaiter(this, void 0, void 0, function () {
|
|
168
168
|
return __generator(this, function (_a) {
|
|
@@ -173,7 +173,7 @@ var BaseAPI = /** @class */ (function () {
|
|
|
173
173
|
case 1:
|
|
174
174
|
_a.sent();
|
|
175
175
|
if (!this.username) return [3 /*break*/, 3];
|
|
176
|
-
return [4 /*yield*/, this.authorize(this.username, this.password)];
|
|
176
|
+
return [4 /*yield*/, this.authorize(this.username, this.password, targetWorkspace)];
|
|
177
177
|
case 2:
|
|
178
178
|
_a.sent();
|
|
179
179
|
this.password = null; // to avoid keeping password loaded in memory.
|
|
@@ -243,7 +243,7 @@ var BaseAPI = /** @class */ (function () {
|
|
|
243
243
|
BaseAPI.prototype.selectEnvironment = function (env) {
|
|
244
244
|
this.configuration.basePath = env;
|
|
245
245
|
};
|
|
246
|
-
BaseAPI.prototype.authorize = function (username, password) {
|
|
246
|
+
BaseAPI.prototype.authorize = function (username, password, targetWorkspace) {
|
|
247
247
|
return __awaiter(this, void 0, void 0, function () {
|
|
248
248
|
var options, response, accessToken, refreshToken;
|
|
249
249
|
return __generator(this, function (_a) {
|
|
@@ -267,6 +267,45 @@ var BaseAPI = /** @class */ (function () {
|
|
|
267
267
|
this.configuration.accessToken = "Bearer ".concat(accessToken);
|
|
268
268
|
refreshToken = this.extractRefreshToken(response);
|
|
269
269
|
this.configuration.refreshToken = refreshToken;
|
|
270
|
+
if (!targetWorkspace) return [3 /*break*/, 3];
|
|
271
|
+
return [4 /*yield*/, this.switchWorkspace(targetWorkspace)];
|
|
272
|
+
case 2:
|
|
273
|
+
_a.sent();
|
|
274
|
+
_a.label = 3;
|
|
275
|
+
case 3: return [2 /*return*/];
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
BaseAPI.prototype.switchWorkspace = function (targetWorkspace) {
|
|
281
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
282
|
+
var options, response, accessToken, refreshToken;
|
|
283
|
+
return __generator(this, function (_a) {
|
|
284
|
+
switch (_a.label) {
|
|
285
|
+
case 0:
|
|
286
|
+
options = {
|
|
287
|
+
method: 'POST',
|
|
288
|
+
url: "".concat(this.configuration.basePath, "/authservice/v1/workspaces/switch"),
|
|
289
|
+
headers: {
|
|
290
|
+
'Content-Type': 'application/json',
|
|
291
|
+
'Authorization': "Bearer ".concat(this.configuration.accessToken),
|
|
292
|
+
'Cookie': this.configuration.refreshToken,
|
|
293
|
+
},
|
|
294
|
+
data: {
|
|
295
|
+
username: this.configuration.username,
|
|
296
|
+
targetWorkspace: targetWorkspace,
|
|
297
|
+
},
|
|
298
|
+
withCredentials: true,
|
|
299
|
+
};
|
|
300
|
+
return [4 /*yield*/, axios_1.default.request(options)];
|
|
301
|
+
case 1:
|
|
302
|
+
response = _a.sent();
|
|
303
|
+
accessToken = response.data.accessToken;
|
|
304
|
+
this.configuration.accessToken = "Bearer ".concat(accessToken);
|
|
305
|
+
refreshToken = this.extractRefreshToken(response);
|
|
306
|
+
if (refreshToken) {
|
|
307
|
+
this.configuration.refreshToken = refreshToken;
|
|
308
|
+
}
|
|
270
309
|
return [2 /*return*/];
|
|
271
310
|
}
|
|
272
311
|
});
|