@joshuanode/n8n-nodes-datto-backup 0.1.0-beta.2 → 0.1.0-beta.5
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 +3 -1
- package/dist/credentials/DattoBackupApi.credentials.d.ts +2 -2
- package/dist/credentials/DattoBackupApi.credentials.d.ts.map +1 -1
- package/dist/credentials/DattoBackupApi.credentials.js +3 -10
- package/dist/credentials/DattoBackupApi.credentials.js.map +1 -1
- package/dist/nodes/DattoBackup/GenericFunctions.d.ts +4 -0
- package/dist/nodes/DattoBackup/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/DattoBackup/GenericFunctions.js +22 -3
- package/dist/nodes/DattoBackup/GenericFunctions.js.map +1 -1
- package/dist/nodes/DattoBackup/OperationHandlers.d.ts.map +1 -1
- package/dist/nodes/DattoBackup/OperationHandlers.js +9 -81
- package/dist/nodes/DattoBackup/OperationHandlers.js.map +1 -1
- package/dist/nodes/DattoBackup/OperationHandlers.test.d.ts +2 -0
- package/dist/nodes/DattoBackup/OperationHandlers.test.d.ts.map +1 -0
- package/dist/nodes/DattoBackup/OperationHandlers.test.js +109 -0
- package/dist/nodes/DattoBackup/OperationHandlers.test.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Datto Backup Node for n8n
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@joshuanode/n8n-nodes-datto-backup)
|
|
4
|
-
[](https://github.com/ajoshuasmith)
|
|
5
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://n8n.io)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
7
|
+
[](https://github.com/ajoshuasmith)
|
|
6
8
|
|
|
7
9
|
Community node for the **Datto API** — built for MSPs managing backup devices at scale.
|
|
8
10
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
export declare class DattoBackupApi implements ICredentialType {
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
5
5
|
documentationUrl: string;
|
|
6
|
+
extends: string[];
|
|
6
7
|
icon: {
|
|
7
8
|
readonly light: "file:../nodes/DattoBackup/dattobackup.svg";
|
|
8
9
|
readonly dark: "file:../nodes/DattoBackup/dattobackup.svg";
|
|
9
10
|
};
|
|
10
11
|
properties: INodeProperties[];
|
|
11
|
-
authenticate: IAuthenticateGeneric;
|
|
12
12
|
test: ICredentialTestRequest;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=DattoBackupApi.credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DattoBackupApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"DattoBackupApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,cAAe,YAAW,eAAe;IACrD,IAAI,SAAoB;IAExB,WAAW,SAAsB;IAEjC,gBAAgB,SAAqD;IAErE,OAAO,WAAqB;IAE5B,IAAI;;;MAGO;IAEX,UAAU,EAAE,eAAe,EAAE,CAoB3B;IAGF,IAAI,EAAE,sBAAsB,CAU1B;CACF"}
|
|
@@ -5,6 +5,7 @@ class DattoBackupApi {
|
|
|
5
5
|
name = 'dattoBackupApi';
|
|
6
6
|
displayName = 'Datto Backup API';
|
|
7
7
|
documentationUrl = 'https://portal.dattobackup.com/integrations/api';
|
|
8
|
+
extends = ['httpBasicAuth'];
|
|
8
9
|
icon = {
|
|
9
10
|
light: 'file:../nodes/DattoBackup/dattobackup.svg',
|
|
10
11
|
dark: 'file:../nodes/DattoBackup/dattobackup.svg',
|
|
@@ -12,7 +13,7 @@ class DattoBackupApi {
|
|
|
12
13
|
properties = [
|
|
13
14
|
{
|
|
14
15
|
displayName: 'Public API Key',
|
|
15
|
-
name: '
|
|
16
|
+
name: 'user',
|
|
16
17
|
type: 'string',
|
|
17
18
|
default: '',
|
|
18
19
|
required: true,
|
|
@@ -20,7 +21,7 @@ class DattoBackupApi {
|
|
|
20
21
|
},
|
|
21
22
|
{
|
|
22
23
|
displayName: 'Secret API Key',
|
|
23
|
-
name: '
|
|
24
|
+
name: 'password',
|
|
24
25
|
type: 'string',
|
|
25
26
|
typeOptions: {
|
|
26
27
|
password: true,
|
|
@@ -30,14 +31,6 @@ class DattoBackupApi {
|
|
|
30
31
|
description: 'The Secret API Key from Datto Partner Portal (Admin > Integrations > API Keys)',
|
|
31
32
|
},
|
|
32
33
|
];
|
|
33
|
-
authenticate = {
|
|
34
|
-
type: 'generic',
|
|
35
|
-
properties: {
|
|
36
|
-
headers: {
|
|
37
|
-
Authorization: '=Basic {{Buffer.from($credentials.publicKey.toString().trim() + ":" + $credentials.secretKey.toString().trim()).toString("base64")}}',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
34
|
test = {
|
|
42
35
|
request: {
|
|
43
36
|
baseURL: 'https://api.datto.com/v1',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DattoBackupApi.credentials.js","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,cAAc;IAC1B,IAAI,GAAG,gBAAgB,CAAC;IAExB,WAAW,GAAG,kBAAkB,CAAC;IAEjC,gBAAgB,GAAG,iDAAiD,CAAC;IAErE,IAAI,GAAG;QACN,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,2CAA2C;KACxC,CAAC;IAEX,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"DattoBackupApi.credentials.js","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,cAAc;IAC1B,IAAI,GAAG,gBAAgB,CAAC;IAExB,WAAW,GAAG,kBAAkB,CAAC;IAEjC,gBAAgB,GAAG,iDAAiD,CAAC;IAErE,OAAO,GAAG,CAAC,eAAe,CAAC,CAAC;IAE5B,IAAI,GAAG;QACN,KAAK,EAAE,2CAA2C;QAClD,IAAI,EAAE,2CAA2C;KACxC,CAAC;IAEX,UAAU,GAAsB;QAC/B;YACC,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gFAAgF;SAC7F;QACD;YACC,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE;gBACZ,QAAQ,EAAE,IAAI;aACd;YACD,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gFAAgF;SAC7F;KACD,CAAC;IAGF,IAAI,GAA2B;QAC9B,OAAO,EAAE;YACR,OAAO,EAAE,0BAA0B;YACnC,GAAG,EAAE,cAAc;YACnB,MAAM,EAAE,KAAK;YACb,EAAE,EAAE;gBACH,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,CAAC;aACX;SACD;KACD,CAAC;CACF;AAhDD,wCAgDC"}
|
|
@@ -7,6 +7,10 @@ export declare function dattoApiRequest(this: IExecuteFunctions | ILoadOptionsFu
|
|
|
7
7
|
* Make an authenticated request and return all items (handles pagination)
|
|
8
8
|
*/
|
|
9
9
|
export declare function dattoApiRequestAllItems(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, qs?: IDataObject): Promise<IDataObject[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Handle standard "Get Many" request with pagination options
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleGetManyRequest(this: IExecuteFunctions, i: number, endpoint: string, qs?: IDataObject): Promise<IDataObject[]>;
|
|
10
14
|
/**
|
|
11
15
|
* Load devices for dropdown selection (fetches ALL pages for MSPs with many devices)
|
|
12
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericFunctions.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EAEnB,WAAW,EAEX,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,EACtB,EAAE,GAAE,WAAgB,GAClB,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAuBtC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,EACtB,EAAE,GAAE,WAAgB,GAClB,OAAO,CAAC,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"GenericFunctions.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EAEnB,WAAW,EAEX,MAAM,cAAc,CAAC;AAKtB;;GAEG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,EACtB,EAAE,GAAE,WAAgB,GAClB,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAuBtC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,EACtB,EAAE,GAAE,WAAgB,GAClB,OAAO,CAAC,WAAW,EAAE,CAAC,CAuCxB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,iBAAiB,EACvB,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,MAAM,EAChB,EAAE,GAAE,WAAgB,GAClB,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBxB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,qBAAqB,GACzB,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuBjD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,qBAAqB,GACzB,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAsBjD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.dattoApiRequest = dattoApiRequest;
|
|
4
4
|
exports.dattoApiRequestAllItems = dattoApiRequestAllItems;
|
|
5
|
+
exports.handleGetManyRequest = handleGetManyRequest;
|
|
5
6
|
exports.getDevices = getDevices;
|
|
6
7
|
exports.getSaasCustomers = getSaasCustomers;
|
|
7
8
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
@@ -37,9 +38,8 @@ async function dattoApiRequestAllItems(method, endpoint, body = {}, qs = {}) {
|
|
|
37
38
|
const perPage = 100;
|
|
38
39
|
let hasMorePages = true;
|
|
39
40
|
while (hasMorePages) {
|
|
40
|
-
qs
|
|
41
|
-
|
|
42
|
-
const response = (await dattoApiRequest.call(this, method, endpoint, body, qs));
|
|
41
|
+
const requestQs = { ...qs, _page: page, _perPage: perPage };
|
|
42
|
+
const response = (await dattoApiRequest.call(this, method, endpoint, body, requestQs));
|
|
43
43
|
const items = response.items || [];
|
|
44
44
|
returnData.push(...items);
|
|
45
45
|
// Check pagination metadata
|
|
@@ -53,9 +53,28 @@ async function dattoApiRequestAllItems(method, endpoint, body = {}, qs = {}) {
|
|
|
53
53
|
hasMorePages = false;
|
|
54
54
|
}
|
|
55
55
|
page++;
|
|
56
|
+
if (page > 500) {
|
|
57
|
+
// Safety break to prevent infinite loops
|
|
58
|
+
hasMorePages = false;
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
return returnData;
|
|
58
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Handle standard "Get Many" request with pagination options
|
|
65
|
+
*/
|
|
66
|
+
async function handleGetManyRequest(i, endpoint, qs = {}) {
|
|
67
|
+
const returnAll = this.getNodeParameter('returnAll', i);
|
|
68
|
+
if (returnAll) {
|
|
69
|
+
return await dattoApiRequestAllItems.call(this, 'GET', endpoint, {}, qs);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const limit = this.getNodeParameter('limit', i);
|
|
73
|
+
qs._perPage = limit;
|
|
74
|
+
const response = (await dattoApiRequest.call(this, 'GET', endpoint, {}, qs));
|
|
75
|
+
return response.items || [];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
59
78
|
/**
|
|
60
79
|
* Load devices for dropdown selection (fetches ALL pages for MSPs with many devices)
|
|
61
80
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":";;AAeA,0CA6BC;AAKD,
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":";;AAeA,0CA6BC;AAKD,0DA6CC;AAKD,oDAsBC;AAKD,gCAyBC;AAKD,4CAwBC;AA5KD,+CAA4C;AAE5C,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAE5C;;GAEG;AACI,KAAK,UAAU,eAAe,CAEpC,MAA2B,EAC3B,QAAgB,EAChB,OAAoB,EAAE,EACtB,KAAkB,EAAE;IAEpB,MAAM,OAAO,GAAwB;QACpC,MAAM;QACN,GAAG,EAAE,GAAG,QAAQ,GAAG,QAAQ,EAAE;QAC7B,EAAE;QACF,IAAI;QACJ,IAAI,EAAE,IAAI;KACV,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACrE,IAAI,EACJ,gBAAgB,EAChB,OAAO,CACP,CAAC;QACF,OAAO,QAAuC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAmB,CAAC,CAAC;IAC7D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB,CAE5C,MAA2B,EAC3B,QAAgB,EAChB,OAAoB,EAAE,EACtB,KAAkB,EAAE;IAEpB,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,GAAG,CAAC;IACpB,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,OAAO,YAAY,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,CAC3C,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,CACT,CAAgB,CAAC;QAElB,MAAM,KAAK,GAAI,QAAQ,CAAC,KAAuB,IAAI,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAE1B,4BAA4B;QAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAqC,CAAC;QAClE,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAoB,CAAC;YACnD,YAAY,GAAG,IAAI,GAAG,UAAU,CAAC;QAClC,CAAC;aAAM,CAAC;YACP,4CAA4C;YAC5C,YAAY,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,EAAE,CAAC;QAEP,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;YAChB,yCAAyC;YACzC,YAAY,GAAG,KAAK,CAAC;QACtB,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAEzC,CAAS,EACT,QAAgB,EAChB,KAAkB,EAAE;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAY,CAAC;IAEnE,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;QAC1D,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,CAAC,MAAM,eAAe,CAAC,IAAI,CAC3C,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,EAAE,EACF,EAAE,CACF,CAAgB,CAAC;QAClB,OAAQ,QAAQ,CAAC,KAAuB,IAAI,EAAE,CAAC;IAChD,CAAC;AACF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU;IAG/B,MAAM,OAAO,GAA2C,EAAE,CAAC;IAE3D,IAAI,CAAC;QACJ,yDAAyD;QACzD,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAE9E,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,IAAI,MAAM,CAAC,YAAsB,CAAC;YACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAsB,CAAC;YAEnD,IAAI,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,IAAI,IAAI,YAAY;oBAC1B,KAAK,EAAE,YAAY;iBACnB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,wEAAwE;IACzE,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB;IAGrC,MAAM,SAAS,GAA2C,EAAE,CAAC;IAE7D,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAE/E,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAgB,IAAI,MAAM,CAAC,cAAwB,CAAC;YACxE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YAEvD,IAAI,UAAU,EAAE,CAAC;gBAChB,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,IAAI,IAAI,UAAU;oBACxB,KAAK,EAAE,UAAU;iBACjB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,wEAAwE;IACzE,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationHandlers.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"OperationHandlers.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,WAAW,EACX,MAAM,cAAc,CAAC;AAQtB,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,WAAW,EAAE,CAAC,CAAC;AAEhH,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAsOhE,CAAC"}
|
|
@@ -35,60 +35,28 @@ exports.operationHandlers = {
|
|
|
35
35
|
// ----------------------------------------
|
|
36
36
|
'agent:getMany': async function (i) {
|
|
37
37
|
const serialNumber = this.getNodeParameter('serialNumber', i);
|
|
38
|
-
|
|
39
|
-
if (returnAll) {
|
|
40
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/agent`);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
const limit = this.getNodeParameter('limit', i);
|
|
44
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/agent`, {}, { _perPage: limit }));
|
|
45
|
-
return response.items || [];
|
|
46
|
-
}
|
|
38
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset/agent`);
|
|
47
39
|
},
|
|
48
40
|
// ----------------------------------------
|
|
49
41
|
// alert
|
|
50
42
|
// ----------------------------------------
|
|
51
43
|
'alert:getMany': async function (i) {
|
|
52
44
|
const serialNumber = this.getNodeParameter('serialNumber', i);
|
|
53
|
-
|
|
54
|
-
if (returnAll) {
|
|
55
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/alert`);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
const limit = this.getNodeParameter('limit', i);
|
|
59
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/alert`, {}, { _perPage: limit }));
|
|
60
|
-
return response.items || [];
|
|
61
|
-
}
|
|
45
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/alert`);
|
|
62
46
|
},
|
|
63
47
|
// ----------------------------------------
|
|
64
48
|
// asset
|
|
65
49
|
// ----------------------------------------
|
|
66
50
|
'asset:getMany': async function (i) {
|
|
67
51
|
const serialNumber = this.getNodeParameter('serialNumber', i);
|
|
68
|
-
|
|
69
|
-
if (returnAll) {
|
|
70
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset`);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
const limit = this.getNodeParameter('limit', i);
|
|
74
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset`, {}, { _perPage: limit }));
|
|
75
|
-
return response.items || [];
|
|
76
|
-
}
|
|
52
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset`);
|
|
77
53
|
},
|
|
78
54
|
// ----------------------------------------
|
|
79
55
|
// share
|
|
80
56
|
// ----------------------------------------
|
|
81
57
|
'share:getMany': async function (i) {
|
|
82
58
|
const serialNumber = this.getNodeParameter('serialNumber', i);
|
|
83
|
-
|
|
84
|
-
if (returnAll) {
|
|
85
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/share`);
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
const limit = this.getNodeParameter('limit', i);
|
|
89
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/share`, {}, { _perPage: limit }));
|
|
90
|
-
return response.items || [];
|
|
91
|
-
}
|
|
59
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset/share`);
|
|
92
60
|
},
|
|
93
61
|
// ----------------------------------------
|
|
94
62
|
// volume
|
|
@@ -146,45 +114,21 @@ exports.operationHandlers = {
|
|
|
146
114
|
// saasDomain
|
|
147
115
|
// ----------------------------------------
|
|
148
116
|
'saasDomain:getMany': async function (i) {
|
|
149
|
-
|
|
150
|
-
if (returnAll) {
|
|
151
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/saas/domains');
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
const limit = this.getNodeParameter('limit', i);
|
|
155
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/saas/domains', {}, { _perPage: limit }));
|
|
156
|
-
return response.items || [];
|
|
157
|
-
}
|
|
117
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, '/saas/domains');
|
|
158
118
|
},
|
|
159
119
|
// ----------------------------------------
|
|
160
120
|
// saasSeat
|
|
161
121
|
// ----------------------------------------
|
|
162
122
|
'saasSeat:getMany': async function (i) {
|
|
163
123
|
const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
|
|
164
|
-
|
|
165
|
-
if (returnAll) {
|
|
166
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/saas/${saasCustomerId}/seats`);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
const limit = this.getNodeParameter('limit', i);
|
|
170
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/saas/${saasCustomerId}/seats`, {}, { _perPage: limit }));
|
|
171
|
-
return response.items || [];
|
|
172
|
-
}
|
|
124
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/saas/${saasCustomerId}/seats`);
|
|
173
125
|
},
|
|
174
126
|
// ----------------------------------------
|
|
175
127
|
// saasApplication
|
|
176
128
|
// ----------------------------------------
|
|
177
129
|
'saasApplication:getMany': async function (i) {
|
|
178
130
|
const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
|
|
179
|
-
|
|
180
|
-
if (returnAll) {
|
|
181
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/saas/${saasCustomerId}/applications`);
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
const limit = this.getNodeParameter('limit', i);
|
|
185
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/saas/${saasCustomerId}/applications`, {}, { _perPage: limit }));
|
|
186
|
-
return response.items || [];
|
|
187
|
-
}
|
|
131
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/saas/${saasCustomerId}/applications`);
|
|
188
132
|
},
|
|
189
133
|
// ----------------------------------------
|
|
190
134
|
// dtcAsset
|
|
@@ -195,27 +139,11 @@ exports.operationHandlers = {
|
|
|
195
139
|
return await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/dtc/${clientId}/assets/${assetUuid}`);
|
|
196
140
|
},
|
|
197
141
|
'dtcAsset:getMany': async function (i) {
|
|
198
|
-
|
|
199
|
-
if (returnAll) {
|
|
200
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/dtc/assets');
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
const limit = this.getNodeParameter('limit', i);
|
|
204
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/assets', {}, { _perPage: limit }));
|
|
205
|
-
return response.items || [];
|
|
206
|
-
}
|
|
142
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, '/dtc/assets');
|
|
207
143
|
},
|
|
208
144
|
'dtcAsset:getManyByClient': async function (i) {
|
|
209
145
|
const clientId = this.getNodeParameter('clientId', i);
|
|
210
|
-
|
|
211
|
-
if (returnAll) {
|
|
212
|
-
return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/dtc/${clientId}/assets`);
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
const limit = this.getNodeParameter('limit', i);
|
|
216
|
-
const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/dtc/${clientId}/assets`, {}, { _perPage: limit }));
|
|
217
|
-
return response.items || [];
|
|
218
|
-
}
|
|
146
|
+
return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/dtc/${clientId}/assets`);
|
|
219
147
|
},
|
|
220
148
|
// ----------------------------------------
|
|
221
149
|
// dtcRmmTemplate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationHandlers.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.ts"],"names":[],"mappings":";;;AAKA,
|
|
1
|
+
{"version":3,"file":"OperationHandlers.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperationHandlers.test.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const OperationHandlers_1 = require("./OperationHandlers");
|
|
4
|
+
// Don't mock GenericFunctions - verify the real logic flow
|
|
5
|
+
// jest.mock('./GenericFunctions');
|
|
6
|
+
describe('OperationHandlers', () => {
|
|
7
|
+
let mockExecuteFunctions;
|
|
8
|
+
let mockGetNodeParameter;
|
|
9
|
+
let mockHttpRequest;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
mockGetNodeParameter = jest.fn();
|
|
12
|
+
mockHttpRequest = jest.fn();
|
|
13
|
+
mockExecuteFunctions = {
|
|
14
|
+
getNodeParameter: mockGetNodeParameter,
|
|
15
|
+
getNode: jest.fn().mockReturnValue({}),
|
|
16
|
+
continueOnFail: jest.fn().mockReturnValue(false),
|
|
17
|
+
helpers: {
|
|
18
|
+
returnJsonArray: jest.fn((data) => data),
|
|
19
|
+
constructExecutionMetaData: jest.fn(),
|
|
20
|
+
httpRequestWithAuthentication: mockHttpRequest,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
jest.clearAllMocks();
|
|
24
|
+
});
|
|
25
|
+
describe('device:get', () => {
|
|
26
|
+
it('should call httpRequestWithAuthentication with correct path', async () => {
|
|
27
|
+
const serialNumber = '12345';
|
|
28
|
+
mockGetNodeParameter.mockReturnValue(serialNumber);
|
|
29
|
+
mockHttpRequest.mockResolvedValue({ name: 'test-device' });
|
|
30
|
+
const handler = OperationHandlers_1.operationHandlers['device:get'];
|
|
31
|
+
await handler.call(mockExecuteFunctions, 0);
|
|
32
|
+
expect(mockGetNodeParameter).toHaveBeenCalledWith('serialNumber', 0);
|
|
33
|
+
expect(mockHttpRequest).toHaveBeenCalledWith('dattoBackupApi', expect.objectContaining({
|
|
34
|
+
url: 'https://api.datto.com/v1/bcdr/device/12345',
|
|
35
|
+
method: 'GET'
|
|
36
|
+
}));
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe('device:getMany', () => {
|
|
40
|
+
it('should fetch all pages when returnAll is true', async () => {
|
|
41
|
+
mockGetNodeParameter.mockImplementation((param) => {
|
|
42
|
+
if (param === 'returnAll')
|
|
43
|
+
return true;
|
|
44
|
+
if (param === 'options')
|
|
45
|
+
return {};
|
|
46
|
+
return undefined;
|
|
47
|
+
});
|
|
48
|
+
// Mock first page response with pagination indicating more pages
|
|
49
|
+
mockHttpRequest.mockResolvedValueOnce({
|
|
50
|
+
items: [{ id: 1 }],
|
|
51
|
+
pagination: { totalPages: 2 }
|
|
52
|
+
});
|
|
53
|
+
// Mock second page response
|
|
54
|
+
mockHttpRequest.mockResolvedValueOnce({
|
|
55
|
+
items: [{ id: 2 }],
|
|
56
|
+
pagination: { totalPages: 2 }
|
|
57
|
+
});
|
|
58
|
+
const handler = OperationHandlers_1.operationHandlers['device:getMany'];
|
|
59
|
+
const result = await handler.call(mockExecuteFunctions, 0);
|
|
60
|
+
expect(mockHttpRequest).toHaveBeenCalledTimes(2);
|
|
61
|
+
expect(result).toHaveLength(2);
|
|
62
|
+
expect(mockHttpRequest).toHaveBeenNthCalledWith(1, 'dattoBackupApi', expect.objectContaining({
|
|
63
|
+
qs: expect.objectContaining({ _page: 1 })
|
|
64
|
+
}));
|
|
65
|
+
expect(mockHttpRequest).toHaveBeenNthCalledWith(2, 'dattoBackupApi', expect.objectContaining({
|
|
66
|
+
qs: expect.objectContaining({ _page: 2 })
|
|
67
|
+
}));
|
|
68
|
+
});
|
|
69
|
+
it('should fetch single page with limit when returnAll is false', async () => {
|
|
70
|
+
mockGetNodeParameter.mockImplementation((param) => {
|
|
71
|
+
if (param === 'returnAll')
|
|
72
|
+
return false;
|
|
73
|
+
if (param === 'options')
|
|
74
|
+
return {};
|
|
75
|
+
if (param === 'limit')
|
|
76
|
+
return 50;
|
|
77
|
+
return undefined;
|
|
78
|
+
});
|
|
79
|
+
mockHttpRequest.mockResolvedValue({ items: [{ id: 1 }] });
|
|
80
|
+
const handler = OperationHandlers_1.operationHandlers['device:getMany'];
|
|
81
|
+
await handler.call(mockExecuteFunctions, 0);
|
|
82
|
+
expect(mockHttpRequest).toHaveBeenCalledWith('dattoBackupApi', expect.objectContaining({
|
|
83
|
+
qs: expect.objectContaining({ _perPage: 50 })
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('agent:getMany', () => {
|
|
88
|
+
it('should call handleGetManyRequest logic correctly', async () => {
|
|
89
|
+
const serialNumber = '12345';
|
|
90
|
+
mockGetNodeParameter.mockImplementation((param) => {
|
|
91
|
+
if (param === 'serialNumber')
|
|
92
|
+
return serialNumber;
|
|
93
|
+
if (param === 'returnAll')
|
|
94
|
+
return true;
|
|
95
|
+
return undefined;
|
|
96
|
+
});
|
|
97
|
+
mockHttpRequest.mockResolvedValue({
|
|
98
|
+
items: [],
|
|
99
|
+
pagination: { totalPages: 1 }
|
|
100
|
+
});
|
|
101
|
+
const handler = OperationHandlers_1.operationHandlers['agent:getMany'];
|
|
102
|
+
await handler.call(mockExecuteFunctions, 0);
|
|
103
|
+
expect(mockHttpRequest).toHaveBeenCalledWith('dattoBackupApi', expect.objectContaining({
|
|
104
|
+
url: `https://api.datto.com/v1/bcdr/device/${serialNumber}/asset/agent`
|
|
105
|
+
}));
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=OperationHandlers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OperationHandlers.test.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED