connectwise-rest 1.0.2 → 1.1.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 CHANGED
@@ -41,7 +41,7 @@ Version 1.0 has been completely re-written and is automatically generated, some
41
41
 
42
42
  ## Documentation
43
43
 
44
- See the full documentation [here](https://covenanttechnologysolutions.github.io/connectwise-rest/index.html)
44
+ See this package's full documentation [here](https://covenanttechnologysolutions.github.io/connectwise-rest/index.html)
45
45
 
46
46
  ## Usage
47
47
 
@@ -49,9 +49,9 @@ See the full documentation [here](https://covenanttechnologysolutions.github.io/
49
49
 
50
50
  ```javascript
51
51
  // ESM
52
- import { AutomateAPI } from 'connectwise-rest';
52
+ import { ManageAPI } from 'connectwise-rest';
53
53
  // CommonJS
54
- const { AutomateAPI } = require('connectwise-rest');
54
+ const { ManageAPI } = require('connectwise-rest');
55
55
 
56
56
  const cwm = new ManageAPI({
57
57
  companyId: 'company',
@@ -91,7 +91,7 @@ import { AutomateAPI } from 'connectwise-rest';
91
91
  // CommonJS
92
92
  const { AutomateAPI } = require('connectwise-rest');
93
93
 
94
- const cwa = new ManageAPI({
94
+ const cwa = new AutomateAPI({
95
95
  companyId: 'company',
96
96
  serverUrl: 'your.connectwise.com',
97
97
  clientId: '<your client id>',
@@ -101,6 +101,7 @@ const cwa = new ManageAPI({
101
101
  password: '<private key>',
102
102
 
103
103
  // also pass in two factor passcode if not using an integrator account
104
+ // this is useful for command line utilities
104
105
  twoFactorPasscode: '<2fa code>',
105
106
 
106
107
  timeout: 20000, // optional, request connection timeout in ms, defaults to 20000
@@ -140,8 +141,8 @@ cwm.paginate(
140
141
  {startPage: 10, pageSize: 500}, // pagination options, defaults to startPage 1, pageSize 1000
141
142
  {} // additional arguments to the api function as needed
142
143
  )
143
- .then(results => { ... })
144
- .catch(error => { ... })
144
+ .then(results => { /*...*/ })
145
+ .catch(error => { /*...*/ })
145
146
 
146
147
  ```
147
148
 
@@ -1,6 +1,7 @@
1
1
  import { CWLogger, RequestOptions, RetryOptions } from './types';
2
2
  import { CWAOptions } from './AutomateAPI';
3
3
  import { components } from './AutomateTypes';
4
+ import { PaginationApiMethod, PaginationOptions } from './BaseAPI';
4
5
  declare type schemas = components['schemas'];
5
6
  declare type TokenResult = schemas['Automate.Api.Domain.Contracts.Security.TokenResult'];
6
7
  export declare const DEFAULTS: {
@@ -23,6 +24,18 @@ export default class Automate {
23
24
  * @public
24
25
  */
25
26
  request: (args: RequestOptions) => Promise<any>;
27
+ /**
28
+ * @public
29
+ * Pass the function to be paginated first, then arguments to paginate itself,
30
+ * then any additional arguments to the function in order
31
+ *
32
+ * @example
33
+ * ```javascript
34
+ * cwa.paginate(cwa.ComputersAPI.getComputerList, {startPage: 1, pageSize: 1000}, {conditions: 'inactiveFlag = false'})
35
+ *
36
+ * ```
37
+ */
38
+ paginate: (apiMethod: PaginationApiMethod, paginateArgs: PaginationOptions, ...methodArgs: Record<string, unknown>[]) => Promise<unknown[]>;
26
39
  constructor({ serverUrl, username, password, twoFactorPasscode, token, clientId, timeout, retry, retryOptions, logger, debug, }: CWAOptions);
27
40
  get token(): string | undefined;
28
41
  set token(token: string | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"Automate.d.ts","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA+B,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,aAAK,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AACpC,aAAK,WAAW,GAAG,OAAO,CAAC,oDAAoD,CAAC,CAAA;AAIhF,eAAO,MAAM,QAAQ,EAAE;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAA;CAgCrC,CAAA;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,QAAQ,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B;;OAEG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;gBAEnC,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,OAAe,EACf,KAAa,EACb,YAAoC,EACpC,MAAM,EACN,KAAK,GACN,EAAE,UAAU;IAsCb,IAAI,KAAK,uBAER;IAED,IAAI,KAAK,CAAC,KAAK,oBAAA,EAEd;WAEY,QAAQ,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,SAAS,GACV,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,SAAS,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC;IAUlB,WAAW;IASjB;;OAEG;YACW,GAAG;IAoCjB,OAAO,CAAC,mBAAmB;CAa5B"}
1
+ {"version":3,"file":"Automate.d.ts","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA+B,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAA6B,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7F,aAAK,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AACpC,aAAK,WAAW,GAAG,OAAO,CAAC,oDAAoD,CAAC,CAAA;AAIhF,eAAO,MAAM,QAAQ,EAAE;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAA;CAgCrC,CAAA;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,MAAM,EAAE,QAAQ,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,CAAC,QAAQ,CAAe;IAC/B;;OAEG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/C;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CACR,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,iBAAiB,EAC/B,GAAG,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KACrC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBAEX,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,OAAe,EACf,KAAa,EACb,YAAoC,EACpC,MAAM,EACN,KAAK,GACN,EAAE,UAAU;IAuCb,IAAI,KAAK,uBAER;IAED,IAAI,KAAK,CAAC,KAAK,oBAAA,EAEd;WAEY,QAAQ,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,SAAS,GACV,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,SAAS,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC,WAAW,CAAC;IAUlB,WAAW;IASjB;;OAEG;YACW,GAAG;IAoCjB,OAAO,CAAC,mBAAmB;CAa5B"}
package/dist/Automate.js CHANGED
@@ -63,6 +63,23 @@ class Automate {
63
63
  writable: true,
64
64
  value: void 0
65
65
  });
66
+ /**
67
+ * @public
68
+ * Pass the function to be paginated first, then arguments to paginate itself,
69
+ * then any additional arguments to the function in order
70
+ *
71
+ * @example
72
+ * ```javascript
73
+ * cwa.paginate(cwa.ComputersAPI.getComputerList, {startPage: 1, pageSize: 1000}, {conditions: 'inactiveFlag = false'})
74
+ *
75
+ * ```
76
+ */
77
+ Object.defineProperty(this, "paginate", {
78
+ enumerable: true,
79
+ configurable: true,
80
+ writable: true,
81
+ value: void 0
82
+ });
66
83
  if (token && username && password) {
67
84
  throw new Error('Authenticate with token or username and password only, do not pass both methods');
68
85
  }
@@ -90,6 +107,7 @@ class Automate {
90
107
  this.createAxiosInstance();
91
108
  }
92
109
  this.request = (0, BaseAPI_1.makeRequest)({ config: this.config, api: this.api, thisObj: this });
110
+ this.paginate = (0, BaseAPI_1.makePaginate)({ thisObj: this });
93
111
  }
94
112
  get token() {
95
113
  return this.config.token;
@@ -136,7 +154,7 @@ class Automate {
136
154
  }
137
155
  catch (error) {
138
156
  if (error.isAxiosError) {
139
- return {
157
+ throw {
140
158
  status: (_a = error.response) === null || _a === void 0 ? void 0 : _a.status,
141
159
  data: (_b = error.response) === null || _b === void 0 ? void 0 : _b.data,
142
160
  message: error === null || error === void 0 ? void 0 : error.message,
@@ -1 +1 @@
1
- {"version":3,"file":"Automate.js","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Automate.js","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAPI.d.ts","sourceRoot":"","sources":["../src/BaseAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGrD;;;GAGG;AACH,eAAO,MAAM,WAAW;YAMZ,YAAY,GAAG,cAAc;gBACzB,cAAc,KAAK,QAAQ,OAAO,CAAC;aACtC,aAAa,eAAe,GAAG,aAAa,CAAC;aAC5C,cAAc,KAAK,QAAQ,OAAO,CAgE7C,CAAA;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC,OAAO,QAAQ,GAAG,OAAO,MAAM,CAAC,CAAA;CACvD;AAGD,oBAAY,mBAAmB,GAAG,QAAQ,CAAA;AAE1C,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,gBACT,gBAAgB,iBAEjB,mBAAmB,iBAChB,iBAAiB,iBAChB,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KACvC,QAAQ,OAAO,EAAE,CA6BnB,CAAA"}
1
+ {"version":3,"file":"BaseAPI.d.ts","sourceRoot":"","sources":["../src/BaseAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,QAAQ,EAAE,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGrD;;;GAGG;AACH,eAAO,MAAM,WAAW;YAMZ,YAAY,GAAG,cAAc;gBACzB,cAAc,KAAK,QAAQ,OAAO,CAAC;aACtC,aAAa,eAAe,GAAG,aAAa,CAAC;aAC5C,cAAc,KAAK,QAAQ,OAAO,CAgE7C,CAAA;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC,OAAO,QAAQ,GAAG,OAAO,MAAM,CAAC,CAAA;CACvD;AAGD,oBAAY,mBAAmB,GAAG,QAAQ,CAAA;AAE1C,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,gBACT,gBAAgB,iBAEjB,mBAAmB,iBAChB,iBAAiB,iBAChB,OAAO,MAAM,EAAE,OAAO,CAAC,EAAE,KACvC,QAAQ,OAAO,EAAE,CAiCnB,CAAA"}
package/dist/BaseAPI.js CHANGED
@@ -55,22 +55,26 @@ exports.makeRequest = makeRequest;
55
55
  * @internal
56
56
  */
57
57
  const makePaginate = ({ thisObj }) => (apiMethod, paginateArgs = {}, ...methodArgs) => {
58
- const { startPage = 0, pageSize = 1000 } = paginateArgs;
58
+ const { startPage = 1, pageSize = 1000 } = paginateArgs;
59
59
  return new Promise(async (resolve, reject) => {
60
60
  let results = [];
61
61
  let page = startPage;
62
62
  if (startPage === undefined || startPage < 1) {
63
- page = 0;
63
+ page = 1;
64
64
  }
65
65
  while (true) {
66
66
  try {
67
- const result = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize);
67
+ const pageResults = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize);
68
68
  // complete page returned, loop again
69
- if (Array.isArray(result) && result.length > 0) {
70
- results = results.concat(result);
69
+ if (Array.isArray(pageResults) && pageResults.length > 0) {
70
+ results = [...results, ...pageResults];
71
+ if (pageResults.length !== pageSize) {
72
+ // incomplete page, there are no more pages
73
+ break;
74
+ }
71
75
  }
72
76
  else {
73
- // incomplete page, this is the last page of results, exit loop and return
77
+ // no results returned, this is the last page, previous page was full
74
78
  break;
75
79
  }
76
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAPI.js","sourceRoot":"","sources":["../src/BaseAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAPI.js","sourceRoot":"","sources":["../src/BaseAPI.ts"],"names":[],"mappings":"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"}
package/dist/Manage.d.ts CHANGED
@@ -28,6 +28,14 @@ export default class Manage {
28
28
  request: (args: RequestOptions) => Promise<any>;
29
29
  /**
30
30
  * @public
31
+ * Pass the function to be paginated first, then arguments to paginate itself,
32
+ * then any additional arguments to the function in order
33
+ *
34
+ * @example
35
+ * ```javascript
36
+ * cwm.paginate(cwm.FinanceAPI.getFinanceAgreements, {startPage: 1, pageSize: 500}, {conditions: 'inactiveFlag = false'})
37
+ *
38
+ * ```
31
39
  */
32
40
  paginate: (apiMethod: PaginationApiMethod, paginateArgs: PaginationOptions, ...methodArgs: Record<string, unknown>[]) => Promise<unknown[]>;
33
41
  constructor({ companyId, publicKey, privateKey, companyUrl, clientId, entryPoint, timeout, apiVersion, retry, retryOptions, logger, debug, }: CWMOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"Manage.d.ts","sourceRoot":"","sources":["../src/Manage.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAA+B,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI7F,eAAO,MAAM,QAAQ,EAAE;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAA;CAgCrC,CAAA;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,QAAQ,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,QAAQ,CAAe;IAC/B;;OAEG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/C;;OAEG;IACH,QAAQ,EAAE,CACR,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,iBAAiB,EAC/B,GAAG,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KACrC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBAEX,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAA2B,EAC3B,OAAe,EACf,UAAqB,EACrB,KAAa,EACb,YAAoC,EACpC,MAAM,EACN,KAAa,GACd,EAAE,UAAU;IAyCb;;OAEG;YACW,GAAG;CA4BlB"}
1
+ {"version":3,"file":"Manage.d.ts","sourceRoot":"","sources":["../src/Manage.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAA+B,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAI7F,eAAO,MAAM,QAAQ,EAAE;IACrB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAA;CAgCrC,CAAA;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,QAAQ,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,QAAQ,CAAe;IAE/B;;OAEG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAE/C;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CACR,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,iBAAiB,EAC/B,GAAG,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KACrC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;gBAEX,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAA2B,EAC3B,OAAe,EACf,UAAqB,EACrB,KAAa,EACb,YAAoC,EACpC,MAAM,EACN,KAAa,GACd,EAAE,UAAU;IAyCb;;OAEG;YACW,GAAG;CA4BlB"}
package/dist/Manage.js CHANGED
@@ -65,6 +65,14 @@ class Manage {
65
65
  });
66
66
  /**
67
67
  * @public
68
+ * Pass the function to be paginated first, then arguments to paginate itself,
69
+ * then any additional arguments to the function in order
70
+ *
71
+ * @example
72
+ * ```javascript
73
+ * cwm.paginate(cwm.FinanceAPI.getFinanceAgreements, {startPage: 1, pageSize: 500}, {conditions: 'inactiveFlag = false'})
74
+ *
75
+ * ```
68
76
  */
69
77
  Object.defineProperty(this, "paginate", {
70
78
  enumerable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Manage.js","sourceRoot":"","sources":["../src/Manage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manage.js","sourceRoot":"","sources":["../src/Manage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "connectwise-rest",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "A nodejs module for interacting with the ConnectWise Manage and Automate REST APIs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  "clean:dist": "npx rimraf dist/",
11
11
  "clean:src": "npx rimraf src/Manage/ & npx rimraf src/Automate/",
12
12
  "clean": "npm run clean:dist & npm run clean:generator & npm run clean:src",
13
- "test": "npx nyc mocha -r ts-node/register",
13
+ "test": "npx nyc mocha",
14
14
  "pregenerate": "npm run clean",
15
15
  "generate:automate": "node generator/automate-generator.js",
16
16
  "generate:manage": "node generator/manage-generator.js",
@@ -19,7 +19,7 @@
19
19
  "postbuild": "npm run lint",
20
20
  "lint": "npx eslint -c .eslintrc --fix",
21
21
  "coveralls": "npx nyc report --reporter=text-lcov > ./.nyc_output/lcov.info",
22
- "pretypedocs": "npm run clean:docs",
22
+ "predocs": "npm run clean:docs",
23
23
  "docs": "npx typedoc src/index.ts",
24
24
  "preapidocumenter": "npx api-extractor run --local --verbose",
25
25
  "apidocumenter": "npx api-documenter markdown --input-folder temp --output-folder docs",
package/src/Automate.ts CHANGED
@@ -2,7 +2,7 @@ import axios, { AxiosInstance, AxiosError } from 'axios'
2
2
  import { CWLogger, DataResponse, ErrorResponse, RequestOptions, RetryOptions } from './types'
3
3
  import { CWAOptions } from './AutomateAPI'
4
4
  import { components } from './AutomateTypes'
5
- import { makeRequest } from './BaseAPI'
5
+ import { makePaginate, makeRequest, PaginationApiMethod, PaginationOptions } from './BaseAPI'
6
6
  type schemas = components['schemas']
7
7
  type TokenResult = schemas['Automate.Api.Domain.Contracts.Security.TokenResult']
8
8
 
@@ -62,6 +62,23 @@ export default class Automate {
62
62
  */
63
63
  request: (args: RequestOptions) => Promise<any>
64
64
 
65
+ /**
66
+ * @public
67
+ * Pass the function to be paginated first, then arguments to paginate itself,
68
+ * then any additional arguments to the function in order
69
+ *
70
+ * @example
71
+ * ```javascript
72
+ * cwa.paginate(cwa.ComputersAPI.getComputerList, {startPage: 1, pageSize: 1000}, {conditions: 'inactiveFlag = false'})
73
+ *
74
+ * ```
75
+ */
76
+ paginate: (
77
+ apiMethod: PaginationApiMethod,
78
+ paginateArgs: PaginationOptions,
79
+ ...methodArgs: Record<string, unknown>[]
80
+ ) => Promise<unknown[]>
81
+
65
82
  constructor({
66
83
  serverUrl,
67
84
  username,
@@ -110,6 +127,7 @@ export default class Automate {
110
127
  }
111
128
 
112
129
  this.request = makeRequest({ config: this.config, api: this.api, thisObj: this })
130
+ this.paginate = makePaginate({ thisObj: this })
113
131
  }
114
132
 
115
133
  get token() {
package/src/BaseAPI.ts CHANGED
@@ -106,7 +106,7 @@ export const makePaginate =
106
106
  paginateArgs: PaginationOptions = {},
107
107
  ...methodArgs: Record<string, unknown>[]
108
108
  ): Promise<unknown[]> => {
109
- const { startPage = 0, pageSize = 1000 } = paginateArgs
109
+ const { startPage = 1, pageSize = 1000 } = paginateArgs
110
110
 
111
111
  return new Promise(async (resolve, reject) => {
112
112
  let results: unknown[] = []
@@ -114,17 +114,21 @@ export const makePaginate =
114
114
  let page = startPage
115
115
 
116
116
  if (startPage === undefined || startPage < 1) {
117
- page = 0
117
+ page = 1
118
118
  }
119
119
 
120
120
  while (true) {
121
121
  try {
122
- const result = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize)
122
+ const pageResults = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize)
123
123
  // complete page returned, loop again
124
- if (Array.isArray(result) && result.length > 0) {
125
- results = results.concat(result)
124
+ if (Array.isArray(pageResults) && pageResults.length > 0) {
125
+ results = [...results, ...pageResults]
126
+ if (pageResults.length !== pageSize) {
127
+ // incomplete page, there are no more pages
128
+ break
129
+ }
126
130
  } else {
127
- // incomplete page, this is the last page of results, exit loop and return
131
+ // no results returned, this is the last page, previous page was full
128
132
  break
129
133
  }
130
134
  } catch (error: unknown) {
package/src/Manage.ts CHANGED
@@ -60,12 +60,22 @@ export interface ManageConfig extends CWMOptions {
60
60
  export default class Manage {
61
61
  config: ManageConfig
62
62
  private instance: AxiosInstance
63
+
63
64
  /**
64
65
  * @public
65
66
  */
66
67
  request: (args: RequestOptions) => Promise<any>
68
+
67
69
  /**
68
70
  * @public
71
+ * Pass the function to be paginated first, then arguments to paginate itself,
72
+ * then any additional arguments to the function in order
73
+ *
74
+ * @example
75
+ * ```javascript
76
+ * cwm.paginate(cwm.FinanceAPI.getFinanceAgreements, {startPage: 1, pageSize: 500}, {conditions: 'inactiveFlag = false'})
77
+ *
78
+ * ```
69
79
  */
70
80
  paginate: (
71
81
  apiMethod: PaginationApiMethod,
@@ -0,0 +1,19 @@
1
+ exports.isPromise = function isPromise(input) {
2
+ return (
3
+ !!input &&
4
+ (typeof input === 'object' || typeof input === 'function') &&
5
+ typeof input.then === 'function'
6
+ )
7
+ }
8
+
9
+ exports.isArrayOfPromises = function isArrayOfPromises(input) {
10
+ if (Array.isArray(input)) {
11
+ if (Array.length === 0) {
12
+ return true
13
+ }
14
+ if (exports.isPromise(input.pop)) {
15
+ return true
16
+ }
17
+ }
18
+ return false
19
+ }
package/test/test.js CHANGED
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Created by kgrube on 9/11/2018
3
3
  */
4
+ /* eslint-disable @typescript-eslint/no-var-requires */
4
5
  const dotenv = require('dotenv')
5
6
  const path = require('path')
6
7
  const { ManageAPI, AutomateAPI, utils } = require('../dist')
7
8
  const assert = require('assert')
8
9
  const { describe, it } = require('mocha')
10
+ const { isPromise } = require('./test-utils.js')
9
11
 
10
12
  dotenv.config({ path: path.join(__dirname, '.env') })
11
13
 
@@ -28,6 +30,8 @@ const cwm = new ManageAPI({
28
30
  privateKey: MANAGE_API_PRIVATE_KEY,
29
31
  clientId: MANAGE_API_CLIENT_ID,
30
32
  apiVersion: '2021.2',
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ logger: () => {},
31
35
  })
32
36
 
33
37
  const cwa = new AutomateAPI({
@@ -35,6 +39,8 @@ const cwa = new AutomateAPI({
35
39
  serverUrl: AUTOMATE_API_URL,
36
40
  username: AUTOMATE_API_USER,
37
41
  password: AUTOMATE_API_PASSWORD,
42
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
43
+ logger: () => {},
38
44
  })
39
45
 
40
46
  describe('Automate', () => {
File without changes