ts-mailcow-api 1.0.0 → 1.2.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/dist/request-factory.js +45 -26
- package/dist/request-factory.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/request-factory.js
CHANGED
|
@@ -32,6 +32,22 @@ function wrapPromiseToArray(promise) {
|
|
|
32
32
|
.catch((err) => reject(err instanceof Error ? err : new Error(String(err))));
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
function isErrorType(type) {
|
|
36
|
+
return type === 'danger' || type === 'error';
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Checks if a Mailcow API response indicates an error.
|
|
40
|
+
* Throws a MailcowException if a definite error is detected.
|
|
41
|
+
*/
|
|
42
|
+
function checkMailcowResponse(res) {
|
|
43
|
+
// Accepts either a single object or an array
|
|
44
|
+
const arr = Array.isArray(res) ? res : [res];
|
|
45
|
+
for (const item of arr) {
|
|
46
|
+
if (isErrorType(item.type)) {
|
|
47
|
+
throw new types_1.MailcowException(Array.isArray(item.msg) ? item.msg.join(', ') : item.msg);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
35
51
|
/**
|
|
36
52
|
* Factory method patterns for creating Axios Requests.
|
|
37
53
|
* @internal
|
|
@@ -47,19 +63,22 @@ class RequestFactory {
|
|
|
47
63
|
*/
|
|
48
64
|
post(route, payload) {
|
|
49
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
var _a;
|
|
67
|
+
try {
|
|
68
|
+
const res = yield axios_1.default.post(this.ctx.BASE_URL + route, payload, this.ctx.AXIOS_CONFIG);
|
|
69
|
+
// Only throws if response has danger or error type
|
|
70
|
+
checkMailcowResponse(res.data);
|
|
71
|
+
return res.data;
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
if (axios_1.default.isAxiosError(e) && ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data)) {
|
|
75
|
+
// Check if the response *itself* is an error type
|
|
76
|
+
checkMailcowResponse(e.response.data);
|
|
77
|
+
// If no definite error, throw generic
|
|
78
|
+
throw new types_1.MailcowException('Unknown Mailcow error');
|
|
79
|
+
}
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
63
82
|
});
|
|
64
83
|
}
|
|
65
84
|
/**
|
|
@@ -68,19 +87,19 @@ class RequestFactory {
|
|
|
68
87
|
*/
|
|
69
88
|
get(route) {
|
|
70
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
90
|
+
var _a;
|
|
91
|
+
try {
|
|
92
|
+
const res = yield axios_1.default.get(this.ctx.BASE_URL + route, this.ctx.AXIOS_CONFIG);
|
|
93
|
+
checkMailcowResponse(res.data);
|
|
94
|
+
return res.data;
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
if (axios_1.default.isAxiosError(e) && ((_a = e.response) === null || _a === void 0 ? void 0 : _a.data)) {
|
|
98
|
+
checkMailcowResponse(e.response.data);
|
|
99
|
+
throw new types_1.MailcowException('Unknown Mailcow error');
|
|
100
|
+
}
|
|
101
|
+
throw e;
|
|
102
|
+
}
|
|
84
103
|
});
|
|
85
104
|
}
|
|
86
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.ts"],"names":[],"mappings":";;;;;;;;;;;AAkBA,gDAMC;AAxBD,
|
|
1
|
+
{"version":3,"file":"request-factory.js","sourceRoot":"","sources":["../src/request-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -315,6 +315,10 @@ export interface BaseMailboxAttributes {
|
|
|
315
315
|
* The mailbox quota.
|
|
316
316
|
*/
|
|
317
317
|
quota: number;
|
|
318
|
+
/**
|
|
319
|
+
* The authentication source for this mailbox.
|
|
320
|
+
*/
|
|
321
|
+
authsource: 'mailcow' | 'ldap' | 'keycloack' | 'generic-oidc';
|
|
318
322
|
}
|
|
319
323
|
/**
|
|
320
324
|
* Mailbox creation request.
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAq7CA;;GAEG;AACH,MAAa,gBAAiB,SAAQ,KAAK;CAK1C;AALD,4CAKC"}
|