@emilgroup/account-sdk 1.38.1-beta.1 → 1.38.1-beta.10
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 +51 -2
- package/dist/base.d.ts +10 -1
- package/dist/base.js +46 -2
- 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/account-sdk@1.38.1-beta.
|
|
20
|
+
npm install @emilgroup/account-sdk@1.38.1-beta.10 --save
|
|
21
21
|
```
|
|
22
22
|
or
|
|
23
23
|
```
|
|
24
|
-
yarn add @emilgroup/account-sdk@1.38.1-beta.
|
|
24
|
+
yarn add @emilgroup/account-sdk@1.38.1-beta.10
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
And then you can import `AccountsApi`.
|
package/base.ts
CHANGED
|
@@ -37,6 +37,16 @@ export interface LoginClass {
|
|
|
37
37
|
permissions: string;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
export interface SwitchWorkspaceRequest {
|
|
41
|
+
username: string;
|
|
42
|
+
targetWorkspace: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface SwitchWorkspaceResponseClass {
|
|
46
|
+
accessToken: string;
|
|
47
|
+
permissions: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
40
50
|
export enum Environment {
|
|
41
51
|
Production = 'https://apiv2.emil.de',
|
|
42
52
|
Test = 'https://apiv2-test.emil.de',
|
|
@@ -87,9 +97,14 @@ export class BaseAPI {
|
|
|
87
97
|
this.loadTokenData();
|
|
88
98
|
|
|
89
99
|
if (configuration) {
|
|
100
|
+
const { accessToken } = this.tokenData;
|
|
90
101
|
this.configuration = configuration;
|
|
91
102
|
this.basePath = configuration.basePath || this.basePath;
|
|
92
|
-
|
|
103
|
+
|
|
104
|
+
// Use config token if provided, otherwise use tokenData token
|
|
105
|
+
const configToken = this.configuration.accessToken;
|
|
106
|
+
const storedToken = accessToken ? `Bearer ${accessToken}` : '';
|
|
107
|
+
this.configuration.accessToken = configToken || storedToken;
|
|
93
108
|
} else {
|
|
94
109
|
const { accessToken, username } = this.tokenData;
|
|
95
110
|
|
|
@@ -119,7 +134,7 @@ export class BaseAPI {
|
|
|
119
134
|
return this.tokenData.permissions.split(',');
|
|
120
135
|
}
|
|
121
136
|
|
|
122
|
-
async authorize(username: string, password: string): Promise<void> {
|
|
137
|
+
async authorize(username: string, password: string, targetWorkspace?: string): Promise<void> {
|
|
123
138
|
const options: AxiosRequestConfig = {
|
|
124
139
|
method: 'POST',
|
|
125
140
|
url: `${this.configuration.basePath}/authservice/v1/login`,
|
|
@@ -141,6 +156,40 @@ export class BaseAPI {
|
|
|
141
156
|
this.tokenData.accessToken = accessToken;
|
|
142
157
|
this.tokenData.permissions = permissions;
|
|
143
158
|
|
|
159
|
+
// Switch workspace if provided
|
|
160
|
+
if (targetWorkspace) {
|
|
161
|
+
await this.switchWorkspace(targetWorkspace);
|
|
162
|
+
} else {
|
|
163
|
+
// Only store if no workspace switch (since switchWorkspace will store after switching)
|
|
164
|
+
this.storeTokenData({
|
|
165
|
+
...this.tokenData
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async switchWorkspace(targetWorkspace: string): Promise<void> {
|
|
171
|
+
const options: AxiosRequestConfig = {
|
|
172
|
+
method: 'POST',
|
|
173
|
+
url: `${this.configuration.basePath}/authservice/v1/workspaces/switch`,
|
|
174
|
+
headers: {
|
|
175
|
+
'Content-Type': 'application/json',
|
|
176
|
+
'Authorization': `Bearer ${this.configuration.accessToken}`,
|
|
177
|
+
},
|
|
178
|
+
data: {
|
|
179
|
+
username: this.configuration.username,
|
|
180
|
+
targetWorkspace,
|
|
181
|
+
} as SwitchWorkspaceRequest,
|
|
182
|
+
withCredentials: true,
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
const response = await globalAxios.request<SwitchWorkspaceResponseClass>(options);
|
|
186
|
+
|
|
187
|
+
const { data: { accessToken, permissions } } = response;
|
|
188
|
+
|
|
189
|
+
this.configuration.accessToken = `Bearer ${accessToken}`;
|
|
190
|
+
this.tokenData.accessToken = accessToken;
|
|
191
|
+
this.tokenData.permissions = permissions;
|
|
192
|
+
|
|
144
193
|
this.storeTokenData({
|
|
145
194
|
...this.tokenData
|
|
146
195
|
});
|
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",
|
|
@@ -57,7 +65,8 @@ export declare class BaseAPI {
|
|
|
57
65
|
selectEnvironment(env: Environment): void;
|
|
58
66
|
selectBasePath(path: string): void;
|
|
59
67
|
getPermissions(): Array<string>;
|
|
60
|
-
authorize(username: string, password: string): Promise<void>;
|
|
68
|
+
authorize(username: string, password: string, targetWorkspace?: string): Promise<void>;
|
|
69
|
+
switchWorkspace(targetWorkspace: string): Promise<void>;
|
|
61
70
|
refreshTokenInternal(): Promise<LoginClass>;
|
|
62
71
|
private storeTokenData;
|
|
63
72
|
loadTokenData(): void;
|
package/dist/base.js
CHANGED
|
@@ -124,9 +124,13 @@ var BaseAPI = /** @class */ (function () {
|
|
|
124
124
|
this.axios = axios;
|
|
125
125
|
this.loadTokenData();
|
|
126
126
|
if (configuration) {
|
|
127
|
+
var accessToken = this.tokenData.accessToken;
|
|
127
128
|
this.configuration = configuration;
|
|
128
129
|
this.basePath = configuration.basePath || this.basePath;
|
|
129
|
-
|
|
130
|
+
// Use config token if provided, otherwise use tokenData token
|
|
131
|
+
var configToken = this.configuration.accessToken;
|
|
132
|
+
var storedToken = accessToken ? "Bearer ".concat(accessToken) : '';
|
|
133
|
+
this.configuration.accessToken = configToken || storedToken;
|
|
130
134
|
}
|
|
131
135
|
else {
|
|
132
136
|
var _a = this.tokenData, accessToken = _a.accessToken, username = _a.username;
|
|
@@ -151,7 +155,7 @@ var BaseAPI = /** @class */ (function () {
|
|
|
151
155
|
}
|
|
152
156
|
return this.tokenData.permissions.split(',');
|
|
153
157
|
};
|
|
154
|
-
BaseAPI.prototype.authorize = function (username, password) {
|
|
158
|
+
BaseAPI.prototype.authorize = function (username, password, targetWorkspace) {
|
|
155
159
|
return __awaiter(this, void 0, void 0, function () {
|
|
156
160
|
var options, response, _a, accessToken, permissions;
|
|
157
161
|
return __generator(this, function (_b) {
|
|
@@ -176,6 +180,46 @@ var BaseAPI = /** @class */ (function () {
|
|
|
176
180
|
this.tokenData.username = username;
|
|
177
181
|
this.tokenData.accessToken = accessToken;
|
|
178
182
|
this.tokenData.permissions = permissions;
|
|
183
|
+
if (!targetWorkspace) return [3 /*break*/, 3];
|
|
184
|
+
return [4 /*yield*/, this.switchWorkspace(targetWorkspace)];
|
|
185
|
+
case 2:
|
|
186
|
+
_b.sent();
|
|
187
|
+
return [3 /*break*/, 4];
|
|
188
|
+
case 3:
|
|
189
|
+
// Only store if no workspace switch (since switchWorkspace will store after switching)
|
|
190
|
+
this.storeTokenData(__assign({}, this.tokenData));
|
|
191
|
+
_b.label = 4;
|
|
192
|
+
case 4: return [2 /*return*/];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
BaseAPI.prototype.switchWorkspace = function (targetWorkspace) {
|
|
198
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
199
|
+
var options, response, _a, accessToken, permissions;
|
|
200
|
+
return __generator(this, function (_b) {
|
|
201
|
+
switch (_b.label) {
|
|
202
|
+
case 0:
|
|
203
|
+
options = {
|
|
204
|
+
method: 'POST',
|
|
205
|
+
url: "".concat(this.configuration.basePath, "/authservice/v1/workspaces/switch"),
|
|
206
|
+
headers: {
|
|
207
|
+
'Content-Type': 'application/json',
|
|
208
|
+
'Authorization': "Bearer ".concat(this.configuration.accessToken),
|
|
209
|
+
},
|
|
210
|
+
data: {
|
|
211
|
+
username: this.configuration.username,
|
|
212
|
+
targetWorkspace: targetWorkspace,
|
|
213
|
+
},
|
|
214
|
+
withCredentials: true,
|
|
215
|
+
};
|
|
216
|
+
return [4 /*yield*/, axios_1.default.request(options)];
|
|
217
|
+
case 1:
|
|
218
|
+
response = _b.sent();
|
|
219
|
+
_a = response.data, accessToken = _a.accessToken, permissions = _a.permissions;
|
|
220
|
+
this.configuration.accessToken = "Bearer ".concat(accessToken);
|
|
221
|
+
this.tokenData.accessToken = accessToken;
|
|
222
|
+
this.tokenData.permissions = permissions;
|
|
179
223
|
this.storeTokenData(__assign({}, this.tokenData));
|
|
180
224
|
return [2 /*return*/];
|
|
181
225
|
}
|