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 +7 -6
- package/dist/Automate.d.ts +13 -0
- package/dist/Automate.d.ts.map +1 -1
- package/dist/Automate.js +19 -1
- package/dist/Automate.js.map +1 -1
- package/dist/BaseAPI.d.ts.map +1 -1
- package/dist/BaseAPI.js +10 -6
- package/dist/BaseAPI.js.map +1 -1
- package/dist/Manage.d.ts +8 -0
- package/dist/Manage.d.ts.map +1 -1
- package/dist/Manage.js +8 -0
- package/dist/Manage.js.map +1 -1
- package/package.json +3 -3
- package/src/Automate.ts +19 -1
- package/src/BaseAPI.ts +10 -6
- package/src/Manage.ts +10 -0
- package/test/test-utils.js +19 -0
- package/test/test.js +6 -0
- /package/test/{test-utils.ts → ts-test-utils.ts} +0 -0
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
|
|
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 {
|
|
52
|
+
import { ManageAPI } from 'connectwise-rest';
|
|
53
53
|
// CommonJS
|
|
54
|
-
const {
|
|
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
|
|
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
|
|
package/dist/Automate.d.ts
CHANGED
|
@@ -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);
|
package/dist/Automate.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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,
|
package/dist/Automate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Automate.js","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAwD;AAIxD,
|
|
1
|
+
{"version":3,"file":"Automate.js","sourceRoot":"","sources":["../src/Automate.ts"],"names":[],"mappings":"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"}
|
package/dist/BaseAPI.d.ts.map
CHANGED
|
@@ -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,
|
|
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 =
|
|
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 =
|
|
63
|
+
page = 1;
|
|
64
64
|
}
|
|
65
65
|
while (true) {
|
|
66
66
|
try {
|
|
67
|
-
const
|
|
67
|
+
const pageResults = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize);
|
|
68
68
|
// complete page returned, loop again
|
|
69
|
-
if (Array.isArray(
|
|
70
|
-
results = results
|
|
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
|
-
//
|
|
77
|
+
// no results returned, this is the last page, previous page was full
|
|
74
78
|
break;
|
|
75
79
|
}
|
|
76
80
|
}
|
package/dist/BaseAPI.js.map
CHANGED
|
@@ -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);
|
package/dist/Manage.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
package/dist/Manage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Manage.js","sourceRoot":"","sources":["../src/Manage.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAuE;AACvE,uCAA6F;AAK7F,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA;AAExC,QAAA,QAAQ,GAIjB;IACF,OAAO,EAAE,WAAW;IACpB,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,IAAI;KAChB;IACD,MAAM,EACJ,CAAC,KAAK,GAAG,KAAK,EAAE,EAAE,CAClB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACpB,QAAQ,KAAK,EAAE;YACb,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;gBACxC,OAAM;YACR,KAAK,MAAM;gBACT,IAAI,KAAK,EAAE;oBACT,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;iBACvC;gBACD,OAAM;YACR,KAAK,MAAM,CAAC,CAAC;gBACX,IAAI,KAAK,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;iBACxC;gBACD,OAAM;aACP;YACD;gBACE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;gBACtC,OAAM;SACT;IACH,CAAC;CACJ,CAAA;AAaD;;GAEG;AACH,MAAqB,MAAM;
|
|
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
|
|
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
|
|
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
|
-
"
|
|
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 =
|
|
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 =
|
|
117
|
+
page = 1
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
while (true) {
|
|
121
121
|
try {
|
|
122
|
-
const
|
|
122
|
+
const pageResults = await getPage(apiMethod, methodArgs, thisObj, page++, pageSize)
|
|
123
123
|
// complete page returned, loop again
|
|
124
|
-
if (Array.isArray(
|
|
125
|
-
results = results
|
|
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
|
-
//
|
|
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
|