connectwise-manage-rest-api
v1.2.0
Published
A lightweight interface that preserves the syntax but removes as much boiler plate code as possible for using the ConnectWise REST API's.
Downloads
52
Readme
ConnectWise Manage REST API
A lightweight interface that preserves the syntax but removes as much boiler plate code as possible for using the ConnectWise REST API's.
api documentation
https://developer.connectwise.com/REST_Documentation
features
- uses promises
- automatic API version lookup with option to specify specific version
- option to retry in case of timeout
- works in browser and node.js
- system report data normalizer
usage
const manage = require ('connectwise-manage-rest-api')({
fqdn: 'api-na.myconnectwise.net',
companyId: '################',
publicKey: '################',
privateKey: '################',
// optional settings
version: 'v4_6_release', // if omitted, latest version will be looked up
timeoutRetries: 10, // number of times to retry request in case of timeout error
clientId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' // see https://developer.connectwise.com/ClientID this will eventually be a required setting
});
(async () => {
const resultGraph = await manage.get(`system/info`);
console.log(resultGraph);
}).catch(error => {
console.log(error);
})();
see test.js for more examples
system report normalizer
const config = require('./test-config');
const log = x => console.log(require('util').inspect(x, {colors: true, depth: null}));
const normalize = require('./normalize-system-report');
const manage = require ('./index')(config);
(async () => {
const holidayReportInColumnarFormat = await manage.get('system/reports/holiday');
const holidayDataInSaneObjectFormat = normalize(holidayReportInColumnarFormat);
log(holidayReportInColumnarFormat);
log(holidayDataInSaneObjectFormat);
})().catch(log);
transforms this
{ column_definitions:
[ { Holiday_List_RecID: { type: 'Numeric', isNullable: false } },
{ Holiday_List_Name: { type: 'Text', isNullable: false } },
{ Holiday_Date: { type: 'DateTime', isNullable: false } },
{ Time_Start: { type: 'DateTime', isNullable: true } },
{ Time_End: { type: 'DateTime', isNullable: true } },
{ Description: { type: 'Text', isNullable: false } },
{ Last_Update_UTC: { type: 'DateTime', isNullable: false } },
{ Updated_By: { type: 'Text', isNullable: false } },
{ Time_Zone: { type: 'Text', isNullable: true } } ],
row_values:
[ [ 1,
'Standard Holidays',
'2016-12-26T05:00:00Z',
null,
null,
'Christmas Day',
'2015-10-02T18:14:42Z',
'chigley',
'Eastern Standard Time' ],
[ 1,
'Standard Holidays',
'2016-12-23T05:00:00Z',
null,
null,
'Christmas Eve',
'2015-10-02T18:14:32Z',
'chigley',
'Eastern Standard Time' ]
]
}
into this
[ { Holiday_List_RecID: 1,
Holiday_List_Name: 'Standard Holidays',
Holiday_Date: '2016-12-26T05:00:00Z',
Time_Start: null,
Time_End: null,
Description: 'Christmas Day',
Last_Update_UTC: '2015-10-02T18:14:42Z',
Updated_By: 'chigley',
Time_Zone: 'Eastern Standard Time' },
{ Holiday_List_RecID: 1,
Holiday_List_Name: 'Standard Holidays',
Holiday_Date: '2016-12-23T05:00:00Z',
Time_Start: null,
Time_End: null,
Description: 'Christmas Eve',
Last_Update_UTC: '2015-10-02T18:14:32Z',
Updated_By: 'chigley',
Time_Zone: 'Eastern Standard Time' }]
install
npm install connectwise-manage-rest-api