@joshuanode/n8n-nodes-datto-backup 0.1.0-beta.1 → 0.1.0-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 CHANGED
@@ -1,8 +1,10 @@
1
1
  # Datto Backup Node for n8n
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40joshuanode%2Fn8n-nodes-datto-backup.svg)](https://www.npmjs.com/package/@joshuanode/n8n-nodes-datto-backup)
4
- [![GitHub](https://img.shields.io/badge/GitHub-ajoshuasmith-181717?logo=github)](https://github.com/ajoshuasmith)
5
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![n8n community](https://img.shields.io/badge/n8n-community%20node-ff6d5a?style=flat-square)](https://n8n.io)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
7
+ [![GitHub](https://img.shields.io/badge/GitHub-ajoshuasmith-181717?logo=github)](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,4 +1,4 @@
1
- import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
1
+ import type { ICredentialDataDecryptedObject, ICredentialTestFunctions, ICredentialType, INodeCredentialTestResult, INodeProperties } from 'n8n-workflow';
2
2
  export declare class DattoBackupApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;
@@ -8,7 +8,9 @@ export declare class DattoBackupApi implements ICredentialType {
8
8
  readonly dark: "file:../nodes/DattoBackup/dattobackup.svg";
9
9
  };
10
10
  properties: INodeProperties[];
11
- authenticate: IAuthenticateGeneric;
12
- test: ICredentialTestRequest;
11
+ testedBy: {
12
+ credentialType: string;
13
+ testRequest: (this: ICredentialTestFunctions, credential: ICredentialDataDecryptedObject) => Promise<INodeCredentialTestResult>;
14
+ };
13
15
  }
14
16
  //# 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,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,cAAe,YAAW,eAAe;IACrD,IAAI,SAAoB;IAExB,WAAW,SAAsB;IAEjC,gBAAgB,SAAqD;IAErE,IAAI;;;MAGO;IAEX,UAAU,EAAE,eAAe,EAAE,CAoB3B;IAEF,YAAY,EAAE,oBAAoB,CAQhC;IAEF,IAAI,EAAE,sBAAsB,CAU1B;CACF"}
1
+ {"version":3,"file":"DattoBackupApi.credentials.d.ts","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,8BAA8B,EAC9B,wBAAwB,EACxB,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,MAAM,cAAc,CAAC;AAEtB,qBAAa,cAAe,YAAW,eAAe;IACrD,IAAI,SAAoB;IAExB,WAAW,SAAsB;IAEjC,gBAAgB,SAAqD;IAErE,IAAI;;;MAGO;IAEX,UAAU,EAAE,eAAe,EAAE,CAoB3B;IAIF,QAAQ;;4BAGA,wBAAwB,cAClB,8BAA8B,KACxC,OAAO,CAAC,yBAAyB,CAAC;MA0DpC;CACF"}
@@ -30,23 +30,61 @@ class DattoBackupApi {
30
30
  description: 'The Secret API Key from Datto Partner Portal (Admin > Integrations > API Keys)',
31
31
  },
32
32
  ];
33
- authenticate = {
34
- type: 'generic',
35
- properties: {
36
- headers: {
37
- Authorization: '=Basic {{Buffer.from($credentials.publicKey + ":" + $credentials.secretKey).toString("base64")}}',
38
- },
39
- },
40
- };
41
- test = {
42
- request: {
43
- baseURL: 'https://api.datto.com/v1',
44
- url: '/bcdr/device',
45
- method: 'GET',
46
- qs: {
47
- _page: 1,
48
- _perPage: 1,
49
- },
33
+ // Custom credential tester that runs in full Node.js context
34
+ // This avoids n8n expression limitations with Buffer.from()
35
+ testedBy = {
36
+ credentialType: 'dattoBackupApi',
37
+ testRequest: async function (credential) {
38
+ const publicKey = credential.publicKey.trim();
39
+ const secretKey = credential.secretKey.trim();
40
+ // Construct Auth Header
41
+ const authHeader = `Basic ${Buffer.from(`${publicKey}:${secretKey}`).toString('base64')}`;
42
+ // Debug Log (Server-side)
43
+ console.log(`[DattoBackup] Testing connection for User: ${publicKey}`);
44
+ console.log(`[DattoBackup] Auth Header Length: ${authHeader.length}`);
45
+ try {
46
+ const response = await this.helpers.request({
47
+ method: 'GET',
48
+ url: 'https://api.datto.com/v1/bcdr/device',
49
+ qs: {
50
+ _page: 1,
51
+ _perPage: 1,
52
+ },
53
+ headers: {
54
+ Authorization: authHeader,
55
+ },
56
+ json: true,
57
+ resolveWithFullResponse: true, // Get full response to check headers/status
58
+ });
59
+ console.log(`[DattoBackup] Connection Successful! Status: ${response.statusCode}`);
60
+ return {
61
+ status: 'OK',
62
+ message: 'Connection successful!',
63
+ };
64
+ }
65
+ catch (error) {
66
+ const err = error;
67
+ console.error('[DattoBackup] Connection Failed:', err.message);
68
+ // Enhanced Error Message for UI
69
+ let uiMessage = `Connection failed: ${err.message}`;
70
+ // Safely access response details
71
+ if (err.response) {
72
+ if (err.response.status) {
73
+ uiMessage += ` (Status: ${err.response.status})`;
74
+ }
75
+ if (err.response.body && Array.isArray(err.response.body.messages)) {
76
+ uiMessage += ` | Details: ${JSON.stringify(err.response.body.messages)}`;
77
+ }
78
+ else if (err.response.body) {
79
+ // Log body if it's not the standard messages array
80
+ console.error('[DattoBackup] Response Body:', JSON.stringify(err.response.body));
81
+ }
82
+ }
83
+ return {
84
+ status: 'Error',
85
+ message: uiMessage,
86
+ };
87
+ }
50
88
  },
51
89
  };
52
90
  }
@@ -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,WAAW;YACjB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gFAAgF;SAC7F;QACD;YACC,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,WAAW;YACjB,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;IAEF,YAAY,GAAyB;QACpC,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACX,OAAO,EAAE;gBACR,aAAa,EACZ,kGAAkG;aACnG;SACD;KACD,CAAC;IAEF,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;AAvDD,wCAuDC"}
1
+ {"version":3,"file":"DattoBackupApi.credentials.js","sourceRoot":"","sources":["../../credentials/DattoBackupApi.credentials.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DattoBackup.node.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/DattoBackup.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EAEjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAyCtB,qBAAa,WAAY,YAAW,SAAS;IAC5C,WAAW,EAAE,oBAAoB,CA+I/B;IAEF,OAAO;;6BAEkB,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;mCAGjD,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;;MAIpF;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA2dvE"}
1
+ {"version":3,"file":"DattoBackup.node.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/DattoBackup.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EAEjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAyCtB,qBAAa,WAAY,YAAW,SAAS;IAC5C,WAAW,EAAE,oBAAoB,CA+I/B;IAEF,OAAO;;6BAEkB,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;mCAGjD,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;;MAIpF;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAoCvE"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DattoBackup = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
5
  const GenericFunctions_1 = require("./GenericFunctions");
6
+ const OperationHandlers_1 = require("./OperationHandlers");
6
7
  const descriptions_1 = require("./descriptions");
7
8
  class DattoBackup {
8
9
  description = {
@@ -162,318 +163,16 @@ class DattoBackup {
162
163
  async execute() {
163
164
  const items = this.getInputData();
164
165
  const returnData = [];
165
- const resource = this.getNodeParameter('resource', 0);
166
- const operation = this.getNodeParameter('operation', 0);
167
166
  for (let i = 0; i < items.length; i++) {
168
167
  try {
169
- let responseData;
170
- // ----------------------------------------
171
- // device
172
- // ----------------------------------------
173
- if (resource === 'device') {
174
- if (operation === 'get') {
175
- const serialNumber = this.getNodeParameter('serialNumber', i);
176
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}`);
177
- }
178
- else if (operation === 'getMany') {
179
- const returnAll = this.getNodeParameter('returnAll', i);
180
- const options = this.getNodeParameter('options', i);
181
- const qs = {};
182
- if (options.showHiddenDevices !== undefined) {
183
- qs.showHiddenDevices = options.showHiddenDevices ? '1' : '0';
184
- }
185
- if (options.showChildResellerDevices !== undefined) {
186
- qs.showChildResellerDevices = options.showChildResellerDevices ? '1' : '0';
187
- }
188
- if (returnAll) {
189
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/bcdr/device', {}, qs);
190
- }
191
- else {
192
- const limit = this.getNodeParameter('limit', i);
193
- qs._perPage = limit;
194
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/bcdr/device', {}, qs));
195
- responseData = response.items || [];
196
- }
197
- }
198
- else {
199
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
200
- }
201
- }
202
- // ----------------------------------------
203
- // agent
204
- // ----------------------------------------
205
- else if (resource === 'agent') {
206
- if (operation === 'getMany') {
207
- const serialNumber = this.getNodeParameter('serialNumber', i);
208
- const returnAll = this.getNodeParameter('returnAll', i);
209
- if (returnAll) {
210
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/agent`);
211
- }
212
- else {
213
- const limit = this.getNodeParameter('limit', i);
214
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/agent`, {}, { _perPage: limit }));
215
- responseData = response.items || [];
216
- }
217
- }
218
- else {
219
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
220
- }
221
- }
222
- // ----------------------------------------
223
- // alert
224
- // ----------------------------------------
225
- else if (resource === 'alert') {
226
- if (operation === 'getMany') {
227
- const serialNumber = this.getNodeParameter('serialNumber', i);
228
- const returnAll = this.getNodeParameter('returnAll', i);
229
- if (returnAll) {
230
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/alert`);
231
- }
232
- else {
233
- const limit = this.getNodeParameter('limit', i);
234
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/alert`, {}, { _perPage: limit }));
235
- responseData = response.items || [];
236
- }
237
- }
238
- else {
239
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
240
- }
241
- }
242
- // ----------------------------------------
243
- // asset
244
- // ----------------------------------------
245
- else if (resource === 'asset') {
246
- if (operation === 'getMany') {
247
- const serialNumber = this.getNodeParameter('serialNumber', i);
248
- const returnAll = this.getNodeParameter('returnAll', i);
249
- if (returnAll) {
250
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset`);
251
- }
252
- else {
253
- const limit = this.getNodeParameter('limit', i);
254
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset`, {}, { _perPage: limit }));
255
- responseData = response.items || [];
256
- }
257
- }
258
- else {
259
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
260
- }
261
- }
262
- // ----------------------------------------
263
- // share
264
- // ----------------------------------------
265
- else if (resource === 'share') {
266
- if (operation === 'getMany') {
267
- const serialNumber = this.getNodeParameter('serialNumber', i);
268
- const returnAll = this.getNodeParameter('returnAll', i);
269
- if (returnAll) {
270
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/share`);
271
- }
272
- else {
273
- const limit = this.getNodeParameter('limit', i);
274
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/share`, {}, { _perPage: limit }));
275
- responseData = response.items || [];
276
- }
277
- }
278
- else {
279
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
280
- }
281
- }
282
- // ----------------------------------------
283
- // volume
284
- // ----------------------------------------
285
- else if (resource === 'volume') {
286
- if (operation === 'get') {
287
- const serialNumber = this.getNodeParameter('serialNumber', i);
288
- const volumeName = this.getNodeParameter('volumeName', i);
289
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/volume`, {}, { volumeName });
290
- }
291
- else {
292
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
293
- }
294
- }
295
- // ----------------------------------------
296
- // vmRestore
297
- // ----------------------------------------
298
- else if (resource === 'vmRestore') {
299
- if (operation === 'getMany') {
300
- const serialNumber = this.getNodeParameter('serialNumber', i);
301
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/vm-restores`);
302
- // Normalize response to array
303
- if (!Array.isArray(responseData)) {
304
- responseData = responseData.items || [responseData];
305
- }
306
- }
307
- else {
308
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
309
- }
310
- }
311
- // ----------------------------------------
312
- // activityLog
313
- // ----------------------------------------
314
- else if (resource === 'activityLog') {
315
- if (operation === 'getMany') {
316
- const returnAll = this.getNodeParameter('returnAll', i);
317
- const filters = this.getNodeParameter('filters', i);
318
- const qs = {};
319
- if (filters.clientName) {
320
- qs.clientName = filters.clientName;
321
- }
322
- if (filters.since) {
323
- qs.since = filters.since;
324
- }
325
- if (filters.sinceUnits) {
326
- qs.sinceUnits = filters.sinceUnits;
327
- }
328
- if (filters.targetType) {
329
- qs.targetType = filters.targetType;
330
- }
331
- if (filters.user) {
332
- qs.user = filters.user;
333
- }
334
- if (returnAll) {
335
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/report/activity-log', {}, qs);
336
- }
337
- else {
338
- const limit = this.getNodeParameter('limit', i);
339
- qs._perPage = limit;
340
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/report/activity-log', {}, qs));
341
- responseData = response.items || [];
342
- }
343
- }
344
- else {
345
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
346
- }
347
- }
348
- // ----------------------------------------
349
- // saasDomain
350
- // ----------------------------------------
351
- else if (resource === 'saasDomain') {
352
- if (operation === 'getMany') {
353
- const returnAll = this.getNodeParameter('returnAll', i);
354
- if (returnAll) {
355
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/saas/domains');
356
- }
357
- else {
358
- const limit = this.getNodeParameter('limit', i);
359
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/saas/domains', {}, { _perPage: limit }));
360
- responseData = response.items || [];
361
- }
362
- }
363
- else {
364
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
365
- }
366
- }
367
- // ----------------------------------------
368
- // saasSeat
369
- // ----------------------------------------
370
- else if (resource === 'saasSeat') {
371
- if (operation === 'getMany') {
372
- const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
373
- const returnAll = this.getNodeParameter('returnAll', i);
374
- if (returnAll) {
375
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/saas/${saasCustomerId}/seats`);
376
- }
377
- else {
378
- const limit = this.getNodeParameter('limit', i);
379
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/saas/${saasCustomerId}/seats`, {}, { _perPage: limit }));
380
- responseData = response.items || [];
381
- }
382
- }
383
- else {
384
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
385
- }
386
- }
387
- // ----------------------------------------
388
- // saasApplication
389
- // ----------------------------------------
390
- else if (resource === 'saasApplication') {
391
- if (operation === 'getMany') {
392
- const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
393
- const returnAll = this.getNodeParameter('returnAll', i);
394
- if (returnAll) {
395
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/saas/${saasCustomerId}/applications`);
396
- }
397
- else {
398
- const limit = this.getNodeParameter('limit', i);
399
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/saas/${saasCustomerId}/applications`, {}, { _perPage: limit }));
400
- responseData = response.items || [];
401
- }
402
- }
403
- else {
404
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
405
- }
406
- }
407
- // ----------------------------------------
408
- // dtcAsset
409
- // ----------------------------------------
410
- else if (resource === 'dtcAsset') {
411
- if (operation === 'get') {
412
- const clientId = this.getNodeParameter('clientId', i);
413
- const assetUuid = this.getNodeParameter('assetUuid', i);
414
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/dtc/${clientId}/assets/${assetUuid}`);
415
- }
416
- else if (operation === 'getMany') {
417
- const returnAll = this.getNodeParameter('returnAll', i);
418
- if (returnAll) {
419
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/dtc/assets');
420
- }
421
- else {
422
- const limit = this.getNodeParameter('limit', i);
423
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/assets', {}, { _perPage: limit }));
424
- responseData = response.items || [];
425
- }
426
- }
427
- else if (operation === 'getManyByClient') {
428
- const clientId = this.getNodeParameter('clientId', i);
429
- const returnAll = this.getNodeParameter('returnAll', i);
430
- if (returnAll) {
431
- responseData = await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', `/dtc/${clientId}/assets`);
432
- }
433
- else {
434
- const limit = this.getNodeParameter('limit', i);
435
- const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/dtc/${clientId}/assets`, {}, { _perPage: limit }));
436
- responseData = response.items || [];
437
- }
438
- }
439
- else {
440
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
441
- }
442
- }
443
- // ----------------------------------------
444
- // dtcRmmTemplate
445
- // ----------------------------------------
446
- else if (resource === 'dtcRmmTemplate') {
447
- if (operation === 'getMany') {
448
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/rmm-templates');
449
- // Normalize response to array
450
- if (!Array.isArray(responseData)) {
451
- responseData = responseData.items || [responseData];
452
- }
453
- }
454
- else {
455
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
456
- }
457
- }
458
- // ----------------------------------------
459
- // dtcStoragePool
460
- // ----------------------------------------
461
- else if (resource === 'dtcStoragePool') {
462
- if (operation === 'getMany') {
463
- responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/storage-pool');
464
- // Normalize response to array
465
- if (!Array.isArray(responseData)) {
466
- responseData = responseData.items || [responseData];
467
- }
468
- }
469
- else {
470
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
471
- }
472
- }
473
- else {
474
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown resource: ${resource}`);
475
- }
476
- // Handle response
168
+ const resource = this.getNodeParameter('resource', i);
169
+ const operation = this.getNodeParameter('operation', i);
170
+ const handlerKey = `${resource}:${operation}`;
171
+ const handler = OperationHandlers_1.operationHandlers[handlerKey];
172
+ if (!handler) {
173
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${handlerKey}`);
174
+ }
175
+ const responseData = await handler.call(this, i);
477
176
  const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } });
478
177
  returnData.push(...executionData);
479
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DattoBackup.node.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/DattoBackup.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DattoBackup.node.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/DattoBackup.node.ts"],"names":[],"mappings":"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"}
@@ -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,CA6BxB;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"}
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,CAyBtC;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");
@@ -10,18 +11,23 @@ const BASE_URL = 'https://api.datto.com/v1';
10
11
  * Make an authenticated request to the Datto API
11
12
  */
12
13
  async function dattoApiRequest(method, endpoint, body = {}, qs = {}) {
14
+ const credentials = await this.getCredentials('dattoBackupApi');
13
15
  const options = {
14
16
  method,
15
17
  url: `${BASE_URL}${endpoint}`,
16
18
  qs,
17
19
  body,
18
20
  json: true,
21
+ auth: {
22
+ username: credentials.publicKey,
23
+ password: credentials.secretKey,
24
+ },
19
25
  };
20
26
  if (Object.keys(body).length === 0) {
21
27
  delete options.body;
22
28
  }
23
29
  try {
24
- const response = await this.helpers.httpRequestWithAuthentication.call(this, 'dattoBackupApi', options);
30
+ const response = await this.helpers.httpRequest(options);
25
31
  return response;
26
32
  }
27
33
  catch (error) {
@@ -37,9 +43,8 @@ async function dattoApiRequestAllItems(method, endpoint, body = {}, qs = {}) {
37
43
  const perPage = 100;
38
44
  let hasMorePages = true;
39
45
  while (hasMorePages) {
40
- qs._page = page;
41
- qs._perPage = perPage;
42
- const response = (await dattoApiRequest.call(this, method, endpoint, body, qs));
46
+ const requestQs = { ...qs, _page: page, _perPage: perPage };
47
+ const response = (await dattoApiRequest.call(this, method, endpoint, body, requestQs));
43
48
  const items = response.items || [];
44
49
  returnData.push(...items);
45
50
  // Check pagination metadata
@@ -53,9 +58,28 @@ async function dattoApiRequestAllItems(method, endpoint, body = {}, qs = {}) {
53
58
  hasMorePages = false;
54
59
  }
55
60
  page++;
61
+ if (page > 500) {
62
+ // Safety break to prevent infinite loops
63
+ hasMorePages = false;
64
+ }
56
65
  }
57
66
  return returnData;
58
67
  }
68
+ /**
69
+ * Handle standard "Get Many" request with pagination options
70
+ */
71
+ async function handleGetManyRequest(i, endpoint, qs = {}) {
72
+ const returnAll = this.getNodeParameter('returnAll', i);
73
+ if (returnAll) {
74
+ return await dattoApiRequestAllItems.call(this, 'GET', endpoint, {}, qs);
75
+ }
76
+ else {
77
+ const limit = this.getNodeParameter('limit', i);
78
+ qs._perPage = limit;
79
+ const response = (await dattoApiRequest.call(this, 'GET', endpoint, {}, qs));
80
+ return response.items || [];
81
+ }
82
+ }
59
83
  /**
60
84
  * Load devices for dropdown selection (fetches ALL pages for MSPs with many devices)
61
85
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IExecuteFunctions, IDataObject } from 'n8n-workflow';
2
+ export type OperationHandler = (this: IExecuteFunctions, index: number) => Promise<IDataObject | IDataObject[]>;
3
+ export declare const operationHandlers: {
4
+ [key: string]: OperationHandler;
5
+ };
6
+ //# sourceMappingURL=OperationHandlers.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.operationHandlers = void 0;
4
+ const GenericFunctions_1 = require("./GenericFunctions");
5
+ exports.operationHandlers = {
6
+ // ----------------------------------------
7
+ // device
8
+ // ----------------------------------------
9
+ 'device:get': async function (i) {
10
+ const serialNumber = this.getNodeParameter('serialNumber', i);
11
+ return await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}`);
12
+ },
13
+ 'device:getMany': async function (i) {
14
+ const returnAll = this.getNodeParameter('returnAll', i);
15
+ const options = this.getNodeParameter('options', i);
16
+ const qs = {};
17
+ if (options.showHiddenDevices !== undefined) {
18
+ qs.showHiddenDevices = options.showHiddenDevices ? '1' : '0';
19
+ }
20
+ if (options.showChildResellerDevices !== undefined) {
21
+ qs.showChildResellerDevices = options.showChildResellerDevices ? '1' : '0';
22
+ }
23
+ if (returnAll) {
24
+ return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/bcdr/device', {}, qs);
25
+ }
26
+ else {
27
+ const limit = this.getNodeParameter('limit', i);
28
+ qs._perPage = limit;
29
+ const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/bcdr/device', {}, qs));
30
+ return response.items || [];
31
+ }
32
+ },
33
+ // ----------------------------------------
34
+ // agent
35
+ // ----------------------------------------
36
+ 'agent:getMany': async function (i) {
37
+ const serialNumber = this.getNodeParameter('serialNumber', i);
38
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset/agent`);
39
+ },
40
+ // ----------------------------------------
41
+ // alert
42
+ // ----------------------------------------
43
+ 'alert:getMany': async function (i) {
44
+ const serialNumber = this.getNodeParameter('serialNumber', i);
45
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/alert`);
46
+ },
47
+ // ----------------------------------------
48
+ // asset
49
+ // ----------------------------------------
50
+ 'asset:getMany': async function (i) {
51
+ const serialNumber = this.getNodeParameter('serialNumber', i);
52
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset`);
53
+ },
54
+ // ----------------------------------------
55
+ // share
56
+ // ----------------------------------------
57
+ 'share:getMany': async function (i) {
58
+ const serialNumber = this.getNodeParameter('serialNumber', i);
59
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/bcdr/device/${serialNumber}/asset/share`);
60
+ },
61
+ // ----------------------------------------
62
+ // volume
63
+ // ----------------------------------------
64
+ 'volume:get': async function (i) {
65
+ const serialNumber = this.getNodeParameter('serialNumber', i);
66
+ const volumeName = this.getNodeParameter('volumeName', i);
67
+ return await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/asset/volume`, {}, { volumeName });
68
+ },
69
+ // ----------------------------------------
70
+ // vmRestore
71
+ // ----------------------------------------
72
+ 'vmRestore:getMany': async function (i) {
73
+ const serialNumber = this.getNodeParameter('serialNumber', i);
74
+ const responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/bcdr/device/${serialNumber}/vm-restores`);
75
+ // Normalize response to array
76
+ if (!Array.isArray(responseData)) {
77
+ return responseData.items || [responseData];
78
+ }
79
+ return responseData;
80
+ },
81
+ // ----------------------------------------
82
+ // activityLog
83
+ // ----------------------------------------
84
+ 'activityLog:getMany': async function (i) {
85
+ const returnAll = this.getNodeParameter('returnAll', i);
86
+ const filters = this.getNodeParameter('filters', i);
87
+ const qs = {};
88
+ if (filters.clientName) {
89
+ qs.clientName = filters.clientName;
90
+ }
91
+ if (filters.since) {
92
+ qs.since = filters.since;
93
+ }
94
+ if (filters.sinceUnits) {
95
+ qs.sinceUnits = filters.sinceUnits;
96
+ }
97
+ if (filters.targetType) {
98
+ qs.targetType = filters.targetType;
99
+ }
100
+ if (filters.user) {
101
+ qs.user = filters.user;
102
+ }
103
+ if (returnAll) {
104
+ return await GenericFunctions_1.dattoApiRequestAllItems.call(this, 'GET', '/report/activity-log', {}, qs);
105
+ }
106
+ else {
107
+ const limit = this.getNodeParameter('limit', i);
108
+ qs._perPage = limit;
109
+ const response = (await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/report/activity-log', {}, qs));
110
+ return response.items || [];
111
+ }
112
+ },
113
+ // ----------------------------------------
114
+ // saasDomain
115
+ // ----------------------------------------
116
+ 'saasDomain:getMany': async function (i) {
117
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, '/saas/domains');
118
+ },
119
+ // ----------------------------------------
120
+ // saasSeat
121
+ // ----------------------------------------
122
+ 'saasSeat:getMany': async function (i) {
123
+ const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
124
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/saas/${saasCustomerId}/seats`);
125
+ },
126
+ // ----------------------------------------
127
+ // saasApplication
128
+ // ----------------------------------------
129
+ 'saasApplication:getMany': async function (i) {
130
+ const saasCustomerId = this.getNodeParameter('saasCustomerId', i);
131
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/saas/${saasCustomerId}/applications`);
132
+ },
133
+ // ----------------------------------------
134
+ // dtcAsset
135
+ // ----------------------------------------
136
+ 'dtcAsset:get': async function (i) {
137
+ const clientId = this.getNodeParameter('clientId', i);
138
+ const assetUuid = this.getNodeParameter('assetUuid', i);
139
+ return await GenericFunctions_1.dattoApiRequest.call(this, 'GET', `/dtc/${clientId}/assets/${assetUuid}`);
140
+ },
141
+ 'dtcAsset:getMany': async function (i) {
142
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, '/dtc/assets');
143
+ },
144
+ 'dtcAsset:getManyByClient': async function (i) {
145
+ const clientId = this.getNodeParameter('clientId', i);
146
+ return await GenericFunctions_1.handleGetManyRequest.call(this, i, `/dtc/${clientId}/assets`);
147
+ },
148
+ // ----------------------------------------
149
+ // dtcRmmTemplate
150
+ // ----------------------------------------
151
+ 'dtcRmmTemplate:getMany': async function (i) {
152
+ const responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/rmm-templates');
153
+ // Normalize response to array
154
+ if (!Array.isArray(responseData)) {
155
+ return responseData.items || [responseData];
156
+ }
157
+ return responseData;
158
+ },
159
+ // ----------------------------------------
160
+ // dtcStoragePool
161
+ // ----------------------------------------
162
+ 'dtcStoragePool:getMany': async function (i) {
163
+ const responseData = await GenericFunctions_1.dattoApiRequest.call(this, 'GET', '/dtc/storage-pool');
164
+ // Normalize response to array
165
+ if (!Array.isArray(responseData)) {
166
+ return responseData.items || [responseData];
167
+ }
168
+ return responseData;
169
+ },
170
+ };
171
+ //# sourceMappingURL=OperationHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationHandlers.js","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=OperationHandlers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationHandlers.test.d.ts","sourceRoot":"","sources":["../../../nodes/DattoBackup/OperationHandlers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,130 @@
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
+ getCredentials: jest.fn().mockResolvedValue({ publicKey: 'user', secretKey: 'pass' }),
16
+ getNode: jest.fn().mockReturnValue({}),
17
+ continueOnFail: jest.fn().mockReturnValue(false),
18
+ helpers: {
19
+ returnJsonArray: jest.fn((data) => data),
20
+ constructExecutionMetaData: jest.fn(),
21
+ httpRequest: mockHttpRequest,
22
+ },
23
+ };
24
+ jest.clearAllMocks();
25
+ });
26
+ describe('device:get', () => {
27
+ it('should call httpRequestWithAuthentication with correct path', async () => {
28
+ const serialNumber = '12345';
29
+ mockGetNodeParameter.mockReturnValue(serialNumber);
30
+ mockHttpRequest.mockResolvedValue({ name: 'test-device' });
31
+ const handler = OperationHandlers_1.operationHandlers['device:get'];
32
+ await handler.call(mockExecuteFunctions, 0);
33
+ expect(mockGetNodeParameter).toHaveBeenCalledWith('serialNumber', 0);
34
+ expect(mockHttpRequest).toHaveBeenCalledWith(expect.objectContaining({
35
+ url: 'https://api.datto.com/v1/bcdr/device/12345',
36
+ method: 'GET',
37
+ auth: {
38
+ username: 'user',
39
+ password: 'pass',
40
+ },
41
+ }));
42
+ });
43
+ });
44
+ describe('device:getMany', () => {
45
+ it('should fetch all pages when returnAll is true', async () => {
46
+ mockGetNodeParameter.mockImplementation((param) => {
47
+ if (param === 'returnAll')
48
+ return true;
49
+ if (param === 'options')
50
+ return {};
51
+ return undefined;
52
+ });
53
+ // Mock first page response with pagination indicating more pages
54
+ mockHttpRequest.mockResolvedValueOnce({
55
+ items: [{ id: 1 }],
56
+ pagination: { totalPages: 2 }
57
+ });
58
+ // Mock second page response
59
+ mockHttpRequest.mockResolvedValueOnce({
60
+ items: [{ id: 2 }],
61
+ pagination: { totalPages: 2 }
62
+ });
63
+ const handler = OperationHandlers_1.operationHandlers['device:getMany'];
64
+ const result = await handler.call(mockExecuteFunctions, 0);
65
+ expect(mockHttpRequest).toHaveBeenCalledTimes(2);
66
+ expect(result).toHaveLength(2);
67
+ expect(mockHttpRequest).toHaveBeenNthCalledWith(1, expect.objectContaining({
68
+ qs: expect.objectContaining({ _page: 1 }),
69
+ auth: {
70
+ username: 'user',
71
+ password: 'pass',
72
+ },
73
+ }));
74
+ expect(mockHttpRequest).toHaveBeenNthCalledWith(2, expect.objectContaining({
75
+ qs: expect.objectContaining({ _page: 2 }),
76
+ auth: {
77
+ username: 'user',
78
+ password: 'pass',
79
+ },
80
+ }));
81
+ });
82
+ it('should fetch single page with limit when returnAll is false', async () => {
83
+ mockGetNodeParameter.mockImplementation((param) => {
84
+ if (param === 'returnAll')
85
+ return false;
86
+ if (param === 'options')
87
+ return {};
88
+ if (param === 'limit')
89
+ return 50;
90
+ return undefined;
91
+ });
92
+ mockHttpRequest.mockResolvedValue({ items: [{ id: 1 }] });
93
+ const handler = OperationHandlers_1.operationHandlers['device:getMany'];
94
+ await handler.call(mockExecuteFunctions, 0);
95
+ expect(mockHttpRequest).toHaveBeenCalledWith(expect.objectContaining({
96
+ qs: expect.objectContaining({ _perPage: 50 }),
97
+ auth: {
98
+ username: 'user',
99
+ password: 'pass',
100
+ },
101
+ }));
102
+ });
103
+ });
104
+ describe('agent:getMany', () => {
105
+ it('should call handleGetManyRequest logic correctly', async () => {
106
+ const serialNumber = '12345';
107
+ mockGetNodeParameter.mockImplementation((param) => {
108
+ if (param === 'serialNumber')
109
+ return serialNumber;
110
+ if (param === 'returnAll')
111
+ return true;
112
+ return undefined;
113
+ });
114
+ mockHttpRequest.mockResolvedValue({
115
+ items: [],
116
+ pagination: { totalPages: 1 }
117
+ });
118
+ const handler = OperationHandlers_1.operationHandlers['agent:getMany'];
119
+ await handler.call(mockExecuteFunctions, 0);
120
+ expect(mockHttpRequest).toHaveBeenCalledWith(expect.objectContaining({
121
+ url: `https://api.datto.com/v1/bcdr/device/${serialNumber}/asset/agent`,
122
+ auth: {
123
+ username: 'user',
124
+ password: 'pass',
125
+ },
126
+ }));
127
+ });
128
+ });
129
+ });
130
+ //# 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joshuanode/n8n-nodes-datto-backup",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.10",
4
4
  "description": "n8n community node for Datto BCDR (Backup, Continuity & Disaster Recovery) API",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -54,9 +54,13 @@
54
54
  },
55
55
  "devDependencies": {
56
56
  "@n8n/node-cli": "*",
57
+ "@types/jest": "^30.0.0",
57
58
  "eslint": "9.32.0",
59
+ "jest": "^30.2.0",
58
60
  "n8n-workflow": "*",
59
61
  "prettier": "3.6.2",
62
+ "ts-jest": "^29.4.6",
63
+ "ts-node": "^10.9.2",
60
64
  "typescript": "5.9.2"
61
65
  },
62
66
  "peerDependencies": {