@emilgroup/partner-portal-sdk-node 1.1.0 → 1.1.1-beta.0
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 +46 -4
- package/dist/base.d.ts +11 -2
- package/dist/base.js +42 -3
- package/dist/models/invoice-class.d.ts +2 -0
- package/dist/models/invoice-class.js +3 -1
- package/dist/models/invoice-status-class.d.ts +2 -0
- package/dist/models/invoice-status-class.js +3 -1
- package/models/invoice-class.ts +3 -1
- package/models/invoice-status-class.ts +3 -1
- package/package.json +1 -1
- package/tsconfig.json +1 -0
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/partner-portal-sdk-node@1.1.0 --save
|
|
20
|
+
npm install @emilgroup/partner-portal-sdk-node@1.1.1-beta.0 --save
|
|
21
21
|
```
|
|
22
22
|
or
|
|
23
23
|
```
|
|
24
|
-
yarn add @emilgroup/partner-portal-sdk-node@1.1.0
|
|
24
|
+
yarn add @emilgroup/partner-portal-sdk-node@1.1.1-beta.0
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
And then you can import `IntermediaryApi`.
|
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> {
|
|
@@ -278,7 +320,7 @@ export class BaseAPI {
|
|
|
278
320
|
* @extends {Error}
|
|
279
321
|
*/
|
|
280
322
|
export class RequiredError extends Error {
|
|
281
|
-
name: "RequiredError" = "RequiredError";
|
|
323
|
+
override name: "RequiredError" = "RequiredError";
|
|
282
324
|
constructor(public field: string, msg?: string) {
|
|
283
325
|
super(msg);
|
|
284
326
|
}
|
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
|
});
|
|
@@ -146,5 +146,7 @@ export type InvoiceClassTypeEnum = typeof InvoiceClassTypeEnum[keyof typeof Invo
|
|
|
146
146
|
export declare const InvoiceClassStatusEnum: {
|
|
147
147
|
readonly Open: "open";
|
|
148
148
|
readonly Paid: "paid";
|
|
149
|
+
readonly PartiallyPaid: "partially-paid";
|
|
150
|
+
readonly Refunded: "refunded";
|
|
149
151
|
};
|
|
150
152
|
export type InvoiceClassStatusEnum = typeof InvoiceClassStatusEnum[keyof typeof InvoiceClassStatusEnum];
|
|
@@ -43,5 +43,7 @@ export interface InvoiceStatusClass {
|
|
|
43
43
|
export declare const InvoiceStatusClassStatusEnum: {
|
|
44
44
|
readonly Open: "open";
|
|
45
45
|
readonly Paid: "paid";
|
|
46
|
+
readonly PartiallyPaid: "partially-paid";
|
|
47
|
+
readonly Refunded: "refunded";
|
|
46
48
|
};
|
|
47
49
|
export type InvoiceStatusClassStatusEnum = typeof InvoiceStatusClassStatusEnum[keyof typeof InvoiceStatusClassStatusEnum];
|
|
@@ -16,5 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
16
16
|
exports.InvoiceStatusClassStatusEnum = void 0;
|
|
17
17
|
exports.InvoiceStatusClassStatusEnum = {
|
|
18
18
|
Open: 'open',
|
|
19
|
-
Paid: 'paid'
|
|
19
|
+
Paid: 'paid',
|
|
20
|
+
PartiallyPaid: 'partially-paid',
|
|
21
|
+
Refunded: 'refunded'
|
|
20
22
|
};
|
package/models/invoice-class.ts
CHANGED
|
@@ -152,7 +152,9 @@ export const InvoiceClassTypeEnum = {
|
|
|
152
152
|
export type InvoiceClassTypeEnum = typeof InvoiceClassTypeEnum[keyof typeof InvoiceClassTypeEnum];
|
|
153
153
|
export const InvoiceClassStatusEnum = {
|
|
154
154
|
Open: 'open',
|
|
155
|
-
Paid: 'paid'
|
|
155
|
+
Paid: 'paid',
|
|
156
|
+
PartiallyPaid: 'partially-paid',
|
|
157
|
+
Refunded: 'refunded'
|
|
156
158
|
} as const;
|
|
157
159
|
|
|
158
160
|
export type InvoiceClassStatusEnum = typeof InvoiceClassStatusEnum[keyof typeof InvoiceClassStatusEnum];
|
|
@@ -48,7 +48,9 @@ export interface InvoiceStatusClass {
|
|
|
48
48
|
|
|
49
49
|
export const InvoiceStatusClassStatusEnum = {
|
|
50
50
|
Open: 'open',
|
|
51
|
-
Paid: 'paid'
|
|
51
|
+
Paid: 'paid',
|
|
52
|
+
PartiallyPaid: 'partially-paid',
|
|
53
|
+
Refunded: 'refunded'
|
|
52
54
|
} as const;
|
|
53
55
|
|
|
54
56
|
export type InvoiceStatusClassStatusEnum = typeof InvoiceStatusClassStatusEnum[keyof typeof InvoiceStatusClassStatusEnum];
|
package/package.json
CHANGED