connectwise-rest 0.25.1 → 1.0.2

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.
Files changed (282) hide show
  1. package/.eslintrc +17 -52
  2. package/.gitattributes +1 -0
  3. package/.mocharc.json +5 -0
  4. package/.prettierrc +7 -0
  5. package/README.md +293 -230
  6. package/api-extractor.json +364 -0
  7. package/dist/Automate/AVTemplatePoliciesAPI.d.ts +36 -0
  8. package/dist/Automate/AVTemplatePoliciesAPI.d.ts.map +1 -0
  9. package/dist/Automate/AVTemplatePoliciesAPI.js +92 -0
  10. package/dist/Automate/AVTemplatePoliciesAPI.js.map +1 -0
  11. package/dist/Automate/ClientsAPI.d.ts +44 -0
  12. package/dist/Automate/ClientsAPI.d.ts.map +1 -0
  13. package/dist/Automate/ClientsAPI.js +119 -0
  14. package/dist/Automate/ClientsAPI.js.map +1 -0
  15. package/dist/Automate/CommandsAPI.d.ts +20 -0
  16. package/dist/Automate/CommandsAPI.d.ts.map +1 -0
  17. package/dist/Automate/CommandsAPI.js +36 -0
  18. package/dist/Automate/CommandsAPI.js.map +1 -0
  19. package/dist/Automate/ComputersAPI.d.ts +131 -0
  20. package/dist/Automate/ComputersAPI.d.ts.map +1 -0
  21. package/dist/Automate/ComputersAPI.js +358 -0
  22. package/dist/Automate/ComputersAPI.js.map +1 -0
  23. package/dist/Automate/ContactsAPI.d.ts +24 -0
  24. package/dist/Automate/ContactsAPI.d.ts.map +1 -0
  25. package/dist/Automate/ContactsAPI.js +50 -0
  26. package/dist/Automate/ContactsAPI.js.map +1 -0
  27. package/dist/Automate/DataViewsAPI.d.ts +22 -0
  28. package/dist/Automate/DataViewsAPI.d.ts.map +1 -0
  29. package/dist/Automate/DataViewsAPI.js +36 -0
  30. package/dist/Automate/DataViewsAPI.js.map +1 -0
  31. package/dist/Automate/DrivesAPI.d.ts +25 -0
  32. package/dist/Automate/DrivesAPI.d.ts.map +1 -0
  33. package/dist/Automate/DrivesAPI.js +57 -0
  34. package/dist/Automate/DrivesAPI.js.map +1 -0
  35. package/dist/Automate/EventLogsAPI.d.ts +19 -0
  36. package/dist/Automate/EventLogsAPI.d.ts.map +1 -0
  37. package/dist/Automate/EventLogsAPI.js +29 -0
  38. package/dist/Automate/EventLogsAPI.js.map +1 -0
  39. package/dist/Automate/LocationsAPI.d.ts +57 -0
  40. package/dist/Automate/LocationsAPI.d.ts.map +1 -0
  41. package/dist/Automate/LocationsAPI.js +138 -0
  42. package/dist/Automate/LocationsAPI.js.map +1 -0
  43. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts +19 -0
  44. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts.map +1 -0
  45. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js +29 -0
  46. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js.map +1 -0
  47. package/dist/Automate/MonitorsAPI.d.ts +29 -0
  48. package/dist/Automate/MonitorsAPI.d.ts.map +1 -0
  49. package/dist/Automate/MonitorsAPI.js +85 -0
  50. package/dist/Automate/MonitorsAPI.js.map +1 -0
  51. package/dist/Automate/NetworkDevicesAPI.d.ts +23 -0
  52. package/dist/Automate/NetworkDevicesAPI.d.ts.map +1 -0
  53. package/dist/Automate/NetworkDevicesAPI.js +43 -0
  54. package/dist/Automate/NetworkDevicesAPI.js.map +1 -0
  55. package/dist/Automate/PatchingAPI.d.ts +33 -0
  56. package/dist/Automate/PatchingAPI.d.ts.map +1 -0
  57. package/dist/Automate/PatchingAPI.js +99 -0
  58. package/dist/Automate/PatchingAPI.js.map +1 -0
  59. package/dist/Automate/RemoteAgentAPI.d.ts +24 -0
  60. package/dist/Automate/RemoteAgentAPI.d.ts.map +1 -0
  61. package/dist/Automate/RemoteAgentAPI.js +50 -0
  62. package/dist/Automate/RemoteAgentAPI.js.map +1 -0
  63. package/dist/Automate/ScriptingAPI.d.ts +41 -0
  64. package/dist/Automate/ScriptingAPI.d.ts.map +1 -0
  65. package/dist/Automate/ScriptingAPI.js +109 -0
  66. package/dist/Automate/ScriptingAPI.js.map +1 -0
  67. package/dist/Automate/SearchesAPI.d.ts +23 -0
  68. package/dist/Automate/SearchesAPI.d.ts.map +1 -0
  69. package/dist/Automate/SearchesAPI.js +43 -0
  70. package/dist/Automate/SearchesAPI.js.map +1 -0
  71. package/dist/Automate/SystemAPI.d.ts +97 -0
  72. package/dist/Automate/SystemAPI.d.ts.map +1 -0
  73. package/dist/Automate/SystemAPI.js +273 -0
  74. package/dist/Automate/SystemAPI.js.map +1 -0
  75. package/dist/Automate/TicketsAPI.d.ts +14 -0
  76. package/dist/Automate/TicketsAPI.d.ts.map +1 -0
  77. package/dist/Automate/TicketsAPI.js +29 -0
  78. package/dist/Automate/TicketsAPI.js.map +1 -0
  79. package/dist/Automate/UserProfilesAPI.d.ts +19 -0
  80. package/dist/Automate/UserProfilesAPI.d.ts.map +1 -0
  81. package/dist/Automate/UserProfilesAPI.js +28 -0
  82. package/dist/Automate/UserProfilesAPI.js.map +1 -0
  83. package/dist/Automate.d.ts +43 -0
  84. package/dist/Automate.d.ts.map +1 -0
  85. package/dist/Automate.js +164 -0
  86. package/dist/Automate.js.map +1 -0
  87. package/dist/AutomateAPI.d.ts +129 -0
  88. package/dist/AutomateAPI.d.ts.map +1 -0
  89. package/dist/AutomateAPI.js +175 -0
  90. package/dist/AutomateAPI.js.map +1 -0
  91. package/dist/AutomateTypes.d.ts +10437 -0
  92. package/dist/AutomateTypes.d.ts.map +1 -0
  93. package/dist/AutomateTypes.js +3 -0
  94. package/dist/AutomateTypes.js.map +1 -0
  95. package/dist/BaseAPI.d.ts +26 -0
  96. package/dist/BaseAPI.d.ts.map +1 -0
  97. package/dist/BaseAPI.js +116 -0
  98. package/dist/BaseAPI.js.map +1 -0
  99. package/dist/Manage/CompanyAPI.d.ts +662 -0
  100. package/dist/Manage/CompanyAPI.d.ts.map +1 -0
  101. package/dist/Manage/CompanyAPI.js +3299 -0
  102. package/dist/Manage/CompanyAPI.js.map +1 -0
  103. package/dist/Manage/ConfigurationsAPI.d.ts +32 -0
  104. package/dist/Manage/ConfigurationsAPI.d.ts.map +1 -0
  105. package/dist/Manage/ConfigurationsAPI.js +78 -0
  106. package/dist/Manage/ConfigurationsAPI.js.map +1 -0
  107. package/dist/Manage/ExpenseAPI.d.ts +85 -0
  108. package/dist/Manage/ExpenseAPI.d.ts.map +1 -0
  109. package/dist/Manage/ExpenseAPI.js +311 -0
  110. package/dist/Manage/ExpenseAPI.js.map +1 -0
  111. package/dist/Manage/FinanceAPI.d.ts +538 -0
  112. package/dist/Manage/FinanceAPI.d.ts.map +1 -0
  113. package/dist/Manage/FinanceAPI.js +2592 -0
  114. package/dist/Manage/FinanceAPI.js.map +1 -0
  115. package/dist/Manage/MarketingAPI.d.ts +142 -0
  116. package/dist/Manage/MarketingAPI.d.ts.map +1 -0
  117. package/dist/Manage/MarketingAPI.js +634 -0
  118. package/dist/Manage/MarketingAPI.js.map +1 -0
  119. package/dist/Manage/ProcurementAPI.d.ts +435 -0
  120. package/dist/Manage/ProcurementAPI.d.ts.map +1 -0
  121. package/dist/Manage/ProcurementAPI.js +2103 -0
  122. package/dist/Manage/ProcurementAPI.js.map +1 -0
  123. package/dist/Manage/ProjectAPI.d.ts +215 -0
  124. package/dist/Manage/ProjectAPI.d.ts.map +1 -0
  125. package/dist/Manage/ProjectAPI.js +945 -0
  126. package/dist/Manage/ProjectAPI.js.map +1 -0
  127. package/dist/Manage/SalesAPI.d.ts +299 -0
  128. package/dist/Manage/SalesAPI.d.ts.map +1 -0
  129. package/dist/Manage/SalesAPI.js +1397 -0
  130. package/dist/Manage/SalesAPI.js.map +1 -0
  131. package/dist/Manage/ScheduleAPI.d.ts +132 -0
  132. package/dist/Manage/ScheduleAPI.d.ts.map +1 -0
  133. package/dist/Manage/ScheduleAPI.js +580 -0
  134. package/dist/Manage/ScheduleAPI.js.map +1 -0
  135. package/dist/Manage/ServiceAPI.d.ts +493 -0
  136. package/dist/Manage/ServiceAPI.d.ts.map +1 -0
  137. package/dist/Manage/ServiceAPI.js +2339 -0
  138. package/dist/Manage/ServiceAPI.js.map +1 -0
  139. package/dist/Manage/SystemAPI.d.ts +954 -0
  140. package/dist/Manage/SystemAPI.d.ts.map +1 -0
  141. package/dist/Manage/SystemAPI.js +4536 -0
  142. package/dist/Manage/SystemAPI.js.map +1 -0
  143. package/dist/Manage/TimeAPI.d.ts +186 -0
  144. package/dist/Manage/TimeAPI.d.ts.map +1 -0
  145. package/dist/Manage/TimeAPI.js +840 -0
  146. package/dist/Manage/TimeAPI.js.map +1 -0
  147. package/dist/Manage.d.ts +39 -0
  148. package/dist/Manage.d.ts.map +1 -0
  149. package/dist/Manage.js +137 -0
  150. package/dist/Manage.js.map +1 -0
  151. package/dist/ManageAPI.d.ts +135 -0
  152. package/dist/ManageAPI.d.ts.map +1 -0
  153. package/dist/ManageAPI.js +115 -0
  154. package/dist/ManageAPI.js.map +1 -0
  155. package/dist/ManageTypes.d.ts +91320 -0
  156. package/dist/ManageTypes.d.ts.map +1 -0
  157. package/dist/ManageTypes.js +7 -0
  158. package/dist/ManageTypes.js.map +1 -0
  159. package/dist/connectwise-rest.d.ts +108638 -0
  160. package/dist/index.d.ts +12 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +36 -0
  163. package/dist/index.js.map +1 -0
  164. package/dist/tsdoc-metadata.json +11 -0
  165. package/dist/types.d.ts +48 -0
  166. package/dist/types.d.ts.map +1 -0
  167. package/dist/types.js +21 -0
  168. package/dist/types.js.map +1 -0
  169. package/dist/utils/Callback.d.ts +70 -0
  170. package/dist/utils/Callback.d.ts.map +1 -0
  171. package/dist/utils/Callback.js +109 -0
  172. package/dist/utils/Callback.js.map +1 -0
  173. package/dist/utils/Series.d.ts +42 -0
  174. package/dist/utils/Series.d.ts.map +1 -0
  175. package/dist/utils/Series.js +68 -0
  176. package/dist/utils/Series.js.map +1 -0
  177. package/dist/utils/index.d.ts +7 -0
  178. package/dist/utils/index.d.ts.map +1 -0
  179. package/dist/utils/index.js +11 -0
  180. package/dist/utils/index.js.map +1 -0
  181. package/package.json +50 -19
  182. package/src/Automate/AVTemplatePoliciesAPI.ts +124 -0
  183. package/src/Automate/ClientsAPI.ts +172 -0
  184. package/src/Automate/CommandsAPI.ts +39 -0
  185. package/src/Automate/ComputersAPI.ts +588 -0
  186. package/src/Automate/ContactsAPI.ts +63 -0
  187. package/src/Automate/DataViewsAPI.ts +43 -0
  188. package/src/Automate/DrivesAPI.ts +81 -0
  189. package/src/Automate/EventLogsAPI.ts +31 -0
  190. package/src/Automate/LocationsAPI.ts +222 -0
  191. package/src/Automate/MaintenanceWindowDefinitionsAPI.ts +34 -0
  192. package/src/Automate/MonitorsAPI.ts +101 -0
  193. package/src/Automate/NetworkDevicesAPI.ts +51 -0
  194. package/src/Automate/PatchingAPI.ts +116 -0
  195. package/src/Automate/RemoteAgentAPI.ts +65 -0
  196. package/src/Automate/ScriptingAPI.ts +147 -0
  197. package/src/Automate/SearchesAPI.ts +49 -0
  198. package/src/Automate/SystemAPI.ts +412 -0
  199. package/src/Automate/TicketsAPI.ts +29 -0
  200. package/src/Automate/UserProfilesAPI.ts +31 -0
  201. package/src/Automate.ts +204 -0
  202. package/src/AutomateAPI.ts +178 -0
  203. package/src/AutomateTypes.ts +10492 -0
  204. package/src/BaseAPI.ts +180 -0
  205. package/src/Manage/CompanyAPI.ts +4941 -0
  206. package/src/Manage/ConfigurationsAPI.ts +116 -0
  207. package/src/Manage/ExpenseAPI.ts +413 -0
  208. package/src/Manage/FinanceAPI.ts +3930 -0
  209. package/src/Manage/MarketingAPI.ts +958 -0
  210. package/src/Manage/ProcurementAPI.ts +3107 -0
  211. package/src/Manage/ProjectAPI.ts +1437 -0
  212. package/src/Manage/SalesAPI.ts +1968 -0
  213. package/src/Manage/ScheduleAPI.ts +773 -0
  214. package/src/Manage/ServiceAPI.ts +3476 -0
  215. package/src/Manage/SystemAPI.ts +6415 -0
  216. package/src/Manage/TimeAPI.ts +1151 -0
  217. package/src/Manage.ts +161 -0
  218. package/src/ManageAPI.ts +170 -0
  219. package/src/ManageTypes.ts +91318 -0
  220. package/src/index.ts +13 -0
  221. package/src/types.ts +68 -0
  222. package/src/utils/Callback.ts +148 -0
  223. package/src/utils/Series.ts +89 -0
  224. package/src/utils/index.ts +7 -0
  225. package/swagger-errors.md +25 -0
  226. package/test/.env.example +12 -6
  227. package/test/test-utils.ts +27 -0
  228. package/test/test.js +331 -108
  229. package/tsconfig.json +29 -0
  230. package/.travis.yml +0 -9
  231. package/doc.md +0 -5984
  232. package/docs/jsdoc.json +0 -15
  233. package/index.js +0 -10
  234. package/src/CompanyAPI/Companies.js +0 -149
  235. package/src/CompanyAPI/CompanyCompanyTypeAssociations.js +0 -111
  236. package/src/CompanyAPI/CompanySites.js +0 -80
  237. package/src/CompanyAPI/CompanyTeams.js +0 -108
  238. package/src/CompanyAPI/CompanyTypeInfos.js +0 -58
  239. package/src/CompanyAPI/CompanyTypes.js +0 -52
  240. package/src/CompanyAPI/Configurations.js +0 -152
  241. package/src/CompanyAPI/ContactContactTypeAssociations.js +0 -55
  242. package/src/CompanyAPI/ContactRelationships.js +0 -36
  243. package/src/CompanyAPI/Contacts.js +0 -199
  244. package/src/CompanyAPI/index.js +0 -53
  245. package/src/ConnectWise.js +0 -339
  246. package/src/ConnectWiseRest.js +0 -515
  247. package/src/FinanceAPI/Additions.js +0 -127
  248. package/src/FinanceAPI/Adjustments.js +0 -109
  249. package/src/FinanceAPI/AgreementSites.js +0 -108
  250. package/src/FinanceAPI/Agreements.js +0 -220
  251. package/src/FinanceAPI/BoardDefaults.js +0 -109
  252. package/src/FinanceAPI/WorkRoles.js +0 -113
  253. package/src/FinanceAPI/WorkTypeExclusions.js +0 -78
  254. package/src/FinanceAPI/WorkTypes.js +0 -124
  255. package/src/FinanceAPI/index.js +0 -50
  256. package/src/ProcurementAPI/CatalogItems.js +0 -94
  257. package/src/ProcurementAPI/index.js +0 -22
  258. package/src/ProjectAPI/Projects.js +0 -142
  259. package/src/ProjectAPI/index.js +0 -28
  260. package/src/SalesAPI/Activities.js +0 -149
  261. package/src/SalesAPI/index.js +0 -14
  262. package/src/ScheduleAPI/ScheduleEntries.js +0 -109
  263. package/src/ScheduleAPI/ScheduleTypes.js +0 -101
  264. package/src/ScheduleAPI/index.js +0 -30
  265. package/src/ServiceDeskAPI/BoardItems.js +0 -134
  266. package/src/ServiceDeskAPI/BoardSubTypes.js +0 -112
  267. package/src/ServiceDeskAPI/BoardTeams.js +0 -108
  268. package/src/ServiceDeskAPI/BoardTypes.js +0 -139
  269. package/src/ServiceDeskAPI/Boards.js +0 -100
  270. package/src/ServiceDeskAPI/Priorities.js +0 -47
  271. package/src/ServiceDeskAPI/ServiceNotes.js +0 -172
  272. package/src/ServiceDeskAPI/Statuses.js +0 -116
  273. package/src/ServiceDeskAPI/Tickets.js +0 -588
  274. package/src/ServiceDeskAPI/index.js +0 -53
  275. package/src/SystemAPI/Members.js +0 -139
  276. package/src/SystemAPI/Reports.js +0 -116
  277. package/src/SystemAPI/index.js +0 -32
  278. package/src/TimeAPI/TimeEntries.js +0 -121
  279. package/src/TimeAPI/index.js +0 -27
  280. package/src/utils/Callback.js +0 -124
  281. package/src/utils/Series.js +0 -63
  282. package/src/utils/index.js +0 -21
package/test/test.js CHANGED
@@ -1,116 +1,339 @@
1
1
  /**
2
2
  * Created by kgrube on 9/11/2018
3
3
  */
4
- require('dotenv').config({path: require('path').join(__dirname, '.env')});
5
- const ConnectWise = require('../index');
6
-
7
- const assert = require('assert');
8
- const _ = require('lodash');
9
- const should = require('should');
10
- const mocha = require('mocha');
11
- const {describe} = mocha;
12
-
13
- const API_COMPANY = process.env.API_COMPANY;
14
- const API_URL = process.env.API_URL;
15
- const API_PUBLIC_KEY = process.env.API_PUBLIC_KEY;
16
- const API_PRIVATE_KEY = process.env.API_PRIVATE_KEY;
17
- const API_CLIENTID = process.env.API_CLIENTID;
18
-
19
- const cw = new ConnectWise({
20
- companyId: API_COMPANY,
21
- companyUrl: API_URL,
22
- publicKey: API_PUBLIC_KEY,
23
- privateKey: API_PRIVATE_KEY,
24
- clientId: API_CLIENTID,
4
+ const dotenv = require('dotenv')
5
+ const path = require('path')
6
+ const { ManageAPI, AutomateAPI, utils } = require('../dist')
7
+ const assert = require('assert')
8
+ const { describe, it } = require('mocha')
9
+
10
+ dotenv.config({ path: path.join(__dirname, '.env') })
11
+
12
+ const {
13
+ MANAGE_API_COMPANY,
14
+ MANAGE_API_URL,
15
+ MANAGE_API_PUBLIC_KEY,
16
+ MANAGE_API_PRIVATE_KEY,
17
+ MANAGE_API_CLIENT_ID,
18
+ AUTOMATE_API_CLIENT_ID,
19
+ AUTOMATE_API_PASSWORD,
20
+ AUTOMATE_API_URL,
21
+ AUTOMATE_API_USER,
22
+ } = process.env
23
+
24
+ const cwm = new ManageAPI({
25
+ companyId: MANAGE_API_COMPANY,
26
+ companyUrl: MANAGE_API_URL,
27
+ publicKey: MANAGE_API_PUBLIC_KEY,
28
+ privateKey: MANAGE_API_PRIVATE_KEY,
29
+ clientId: MANAGE_API_CLIENT_ID,
25
30
  apiVersion: '2021.2',
26
- });
31
+ })
32
+
33
+ const cwa = new AutomateAPI({
34
+ clientId: AUTOMATE_API_CLIENT_ID,
35
+ serverUrl: AUTOMATE_API_URL,
36
+ username: AUTOMATE_API_USER,
37
+ password: AUTOMATE_API_PASSWORD,
38
+ })
39
+
40
+ describe('Automate', () => {
41
+ describe('instance', () => {
42
+ it('should be an instance of Automate', (done) => {
43
+ assert(cwa instanceof AutomateAPI)
44
+ done()
45
+ })
46
+
47
+ it('should have AVTemplatePoliciesAPI', (done) => {
48
+ assert(cwa.AVTemplatePoliciesAPI)
49
+ done()
50
+ })
51
+ it('should have ClientsAPI', (done) => {
52
+ assert(cwa.ClientsAPI)
53
+ done()
54
+ })
55
+ it('should have CommandsAPI', (done) => {
56
+ assert(cwa.CommandsAPI)
57
+ done()
58
+ })
59
+ it('should have ComputersAPI', (done) => {
60
+ assert(cwa.ComputersAPI)
61
+ done()
62
+ })
63
+ it('should have ContactsAPI', (done) => {
64
+ assert(cwa.ContactsAPI)
65
+ done()
66
+ })
67
+ it('should have DataViewsAPI', (done) => {
68
+ assert(cwa.DataViewsAPI)
69
+ done()
70
+ })
71
+ it('should have DrivesAPI', (done) => {
72
+ assert(cwa.DrivesAPI)
73
+ done()
74
+ })
75
+ it('should have EventLogsAPI', (done) => {
76
+ assert(cwa.EventLogsAPI)
77
+ done()
78
+ })
79
+ it('should have LocationsAPI', (done) => {
80
+ assert(cwa.LocationsAPI)
81
+ done()
82
+ })
83
+ it('should have MaintenanceWindowDefinitionsAPI', (done) => {
84
+ assert(cwa.MaintenanceWindowDefinitionsAPI)
85
+ done()
86
+ })
87
+ it('should have MonitorsAPI', (done) => {
88
+ assert(cwa.MonitorsAPI)
89
+ done()
90
+ })
91
+ it('should have NetworkDevicesAPI', (done) => {
92
+ assert(cwa.NetworkDevicesAPI)
93
+ done()
94
+ })
95
+ it('should have PatchingAPI', (done) => {
96
+ assert(cwa.PatchingAPI)
97
+ done()
98
+ })
99
+ it('should have RemoteAgentAPI', (done) => {
100
+ assert(cwa.RemoteAgentAPI)
101
+ done()
102
+ })
103
+ it('should have ScriptingAPI', (done) => {
104
+ assert(cwa.ScriptingAPI)
105
+ done()
106
+ })
107
+ it('should have SearchesAPI', (done) => {
108
+ assert(cwa.SearchesAPI)
109
+ done()
110
+ })
111
+ it('should have SystemAPI', (done) => {
112
+ assert(cwa.SystemAPI)
113
+ done()
114
+ })
115
+ it('should have TicketsAPI', (done) => {
116
+ assert(cwa.TicketsAPI)
117
+ done()
118
+ })
119
+ it('should have UserProfilesAPI', (done) => {
120
+ assert(cwa.UserProfilesAPI)
121
+ done()
122
+ })
123
+ })
124
+
125
+ describe('ComputersAPI', () => {
126
+ it('should return a list of computers', (done) => {
127
+ cwa.ComputersAPI.getComputerList({ pageSize: 1 })
128
+ .then((results) => {
129
+ assert(results.length === 1)
130
+ const computer = results[0]
131
+ assert(computer.Id)
132
+ assert(computer.ComputerName)
133
+ done()
134
+ })
135
+ .catch((error) => done(error))
136
+ })
137
+ })
138
+ })
27
139
 
28
- describe('CW', () => {
140
+ describe('Manage', () => {
29
141
  describe('instance', () => {
30
- it('should be an instance of CW', done => {
31
- assert(cw instanceof ConnectWise);
32
- done();
33
- });
34
-
35
- it('should have utils', done => {
36
- assert(cw.utils);
37
- done();
38
- });
39
-
40
- it('should have CompanyAPI', done => {
41
- assert(cw.CompanyAPI);
42
- done();
43
- });
44
-
45
- it('should have FinanceAPI', done => {
46
- assert(cw.FinanceAPI);
47
- done();
48
- });
49
-
50
- it('should have ProjectAPI', done => {
51
- assert(cw.ProjectAPI);
52
- done();
53
- });
54
-
55
- it('should have SalesAPI', done => {
56
- assert(cw.SalesAPI);
57
- done();
58
- });
59
-
60
- it('should have ScheduleAPI', done => {
61
- assert(cw.ScheduleAPI);
62
- done();
63
- });
64
-
65
- it('should have ServiceDeskAPI', done => {
66
- assert(cw.ServiceDeskAPI);
67
- done();
68
- });
69
-
70
- it('should have SystemAPI', done => {
71
- assert(cw.SystemAPI);
72
- done();
73
- });
74
-
75
- it('should have TimeAPI', done => {
76
- assert(cw.TimeAPI);
77
- done();
78
- });
79
- });
80
-
81
- describe('ServiceDeskAPI', () => {
82
- describe('Tickets', () => {
83
- it('should return a ticket object', done => {
84
- cw.ServiceDeskAPI.Tickets.getTickets({pageSize: 1})
142
+ it('should be an instance of Manage', (done) => {
143
+ assert(cwm instanceof ManageAPI)
144
+ done()
145
+ })
146
+
147
+ it('should have CompanyAPI', (done) => {
148
+ assert(cwm.CompanyAPI)
149
+ done()
150
+ })
151
+
152
+ it('should have ConfigurationsAPI', (done) => {
153
+ assert(cwm.ConfigurationsAPI)
154
+ done()
155
+ })
156
+
157
+ it('should have ExpenseAPI', (done) => {
158
+ assert(cwm.ExpenseAPI)
159
+ done()
160
+ })
161
+
162
+ it('should have FinanceAPI', (done) => {
163
+ assert(cwm.FinanceAPI)
164
+ done()
165
+ })
166
+
167
+ it('should have MarketingAPI', (done) => {
168
+ assert(cwm.MarketingAPI)
169
+ done()
170
+ })
171
+
172
+ it('should have ProcurementAPI', (done) => {
173
+ assert(cwm.ProcurementAPI)
174
+ done()
175
+ })
176
+
177
+ it('should have ProjectAPI', (done) => {
178
+ assert(cwm.ProjectAPI)
179
+ done()
180
+ })
181
+
182
+ it('should have SalesAPI', (done) => {
183
+ assert(cwm.SalesAPI)
184
+ done()
185
+ })
186
+
187
+ it('should have ScheduleAPI', (done) => {
188
+ assert(cwm.ScheduleAPI)
189
+ done()
190
+ })
191
+
192
+ it('should have ServiceAPI', (done) => {
193
+ assert(cwm.ServiceAPI)
194
+ done()
195
+ })
196
+
197
+ it('should have SystemAPI', (done) => {
198
+ assert(cwm.SystemAPI)
199
+ done()
200
+ })
201
+
202
+ it('should have TimeAPI', (done) => {
203
+ assert(cwm.TimeAPI)
204
+ done()
205
+ })
206
+ })
207
+
208
+ describe('ServiceAPI', () => {
209
+ describe('getServiceTicketsById', () => {
210
+ it('should return a ticket object', (done) => {
211
+ cwm.ServiceAPI.getServiceTicketsById(123456)
212
+ .then((result) => {
213
+ if (!result) {
214
+ done('No result')
215
+ }
216
+ const { id, summary } = result
217
+ assert(id, summary)
218
+ done()
219
+ })
220
+ .catch((err) => {
221
+ console.error(err)
222
+ done(err)
223
+ })
224
+ })
225
+ })
226
+
227
+ describe('getServiceTickets', () => {
228
+ it('should return an array of ticket objects', (done) => {
229
+ cwm.ServiceAPI.getServiceTickets({ pageSize: 1 })
85
230
  .then(([ticket]) => {
86
- assert(ticket.id);
87
- assert(ticket._info);
88
- assert(ticket._info.dateEntered);
89
- return done();
231
+ assert(ticket.id)
232
+ assert(ticket._info)
233
+ assert(ticket._info.dateEntered)
234
+ return done()
235
+ })
236
+ .catch((err) => done(err))
237
+ })
238
+ })
239
+
240
+ describe('error', () => {
241
+ it('should return a 404 not found error', (done) => {
242
+ cwm.ServiceAPI.getServiceBoardsByGrandparentIdItemsByParentIdAssociations(9999, 9999)
243
+ .then(() => {
244
+ return done(new Error('Incorrect response'))
245
+ })
246
+ .catch((err) => {
247
+ assert(err)
248
+ assert(err.status === 404)
249
+ done()
250
+ })
251
+ })
252
+ })
253
+ })
254
+
255
+ describe('pagination', () => {
256
+ it('should return an array of CommunicationTypes', (done) => {
257
+ cwm
258
+ .paginate(cwm.CompanyAPI.getCompanyCommunicationTypes, { pageSize: 2, startPage: 1 }, {})
259
+ .then((results) => {
260
+ assert(Array.isArray(results))
261
+ assert(results.length > 0)
262
+ const firstType = results.pop()
263
+ assert(firstType.id)
264
+ assert(firstType.description)
265
+ assert(firstType._info)
266
+ done()
267
+ })
268
+ .catch((err) => done(err))
269
+ })
270
+
271
+ it('should return the same number of items', (done) => {
272
+ cwm
273
+ .paginate(cwm.CompanyAPI.getCompanyCommunicationTypes, { pageSize: 2, startPage: 1 }, {})
274
+ .then((pagedResults) => {
275
+ return cwm.CompanyAPI.getCompanyCommunicationTypes().then((unPagedResults) => {
276
+ assert(unPagedResults.length === pagedResults.length)
277
+ done()
90
278
  })
91
- .catch(err => done(err));
92
- });
93
- });
94
- });
95
- });
96
-
97
- describe('ConnectWise', () => {
98
- describe('class', () => {
99
- it('should have utils property', done => {
100
- assert(ConnectWise.utils);
101
- done();
102
- });
103
- });
104
-
105
- describe('utils', () => {
106
- it('should have Callback property', done => {
107
- assert(ConnectWise.utils.Callback);
108
- done();
109
- });
110
-
111
- it('should have Series property', done => {
112
- assert(ConnectWise.utils.Series);
113
- done();
114
- });
115
- });
116
- });
279
+ })
280
+ .catch((err) => done(err))
281
+ })
282
+ })
283
+ })
284
+
285
+ describe('utils', () => {
286
+ it('should have utils property', (done) => {
287
+ assert(utils)
288
+ done()
289
+ })
290
+
291
+ describe('Callback', () => {
292
+ it('should have Callback property', (done) => {
293
+ assert(utils.Callback)
294
+ done()
295
+ })
296
+ })
297
+
298
+ describe('Series', () => {
299
+ it('should have Series property', (done) => {
300
+ assert(utils.Series)
301
+ done()
302
+ })
303
+
304
+ it('should return a promise', (done) => {
305
+ const promises = utils.Series.all({ series: [new Promise((resolve) => resolve(true))] })
306
+ assert(isPromise(promises))
307
+ done()
308
+ })
309
+
310
+ it('should resolve an array of results', (done) => {
311
+ utils.Series.all({ series: [new Promise((resolve) => resolve(true))] })
312
+ .then((results) => {
313
+ assert(results[0] === true)
314
+ done()
315
+ })
316
+ .catch((error) => done(error))
317
+ })
318
+
319
+ it('should resolve an array of results', (done) => {
320
+ utils.Series.all({ series: [() => true] })
321
+ .then((results) => {
322
+ assert(results[0] === true)
323
+ done()
324
+ })
325
+ .catch((error) => done(error))
326
+ })
327
+
328
+ it('should resolve an array of results', (done) => {
329
+ utils.Series.all({
330
+ series: [() => new Promise((resolve) => resolve(true))],
331
+ })
332
+ .then((results) => {
333
+ assert(results[0] === true)
334
+ done()
335
+ })
336
+ .catch((error) => done(error))
337
+ })
338
+ })
339
+ })
package/tsconfig.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "include": [
3
+ "src/**/*.js",
4
+ "src/**/*.ts"
5
+ ],
6
+ "exclude": ["scripts"],
7
+ "compilerOptions": {
8
+ "baseUrl": "./src",
9
+ "declaration": true,
10
+ "declarationMap": true,
11
+ "sourceMap": true,
12
+ "esModuleInterop": true,
13
+ "allowJs": true,
14
+ "forceConsistentCasingInFileNames": true,
15
+ "lib": ["ES2015"],
16
+ "module": "commonjs",
17
+ "moduleResolution": "Node",
18
+ "noImplicitReturns": true,
19
+ "outDir": "./dist",
20
+ "strict": true,
21
+ "target": "ES2018",
22
+ "useDefineForClassFields": true
23
+ },
24
+ "typedocOptions": {
25
+ "entryPoints": ["src/index.ts"],
26
+ "entryPointStrategy": "resolve",
27
+ "out": "docs"
28
+ }
29
+ }
package/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: node_js
2
- node_js:
3
- - "8"
4
- - "10"
5
- - "12"
6
- after_script:
7
- - npm run coveralls
8
- before_script:
9
- - npm run eslint