cityworks 0.0.30 → 0.0.32
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/LICENSE +1 -1
- package/README.md +19 -19
- package/dist/activity_link.d.ts +6 -3
- package/dist/error.d.ts +7 -4
- package/dist/gis.d.ts +13 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.m.js +1 -1
- package/dist/index.m.js.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/inspection.d.ts +1 -1
- package/dist/inspection_admin.d.ts +15 -0
- package/dist/request_admin.d.ts +8 -0
- package/dist/workorder_admin.d.ts +101 -0
- package/package.json +3 -2
- package/src/activity_link.ts +17 -3
- package/src/case_data.ts +1 -1
- package/src/cityworks.ts +29 -16
- package/src/comments.ts +9 -1
- package/src/error.ts +11 -3
- package/src/event_layer.ts +219 -28
- package/src/general.ts +3 -1
- package/src/gis.ts +88 -53
- package/src/inspection.ts +1 -1
- package/src/inspection_admin.ts +28 -0
- package/src/message_queue.ts +10 -0
- package/src/request.ts +1 -1
- package/src/request_admin.ts +18 -0
- package/src/workorder.ts +2 -2
- package/src/workorder_admin.ts +231 -0
- package/test/01.cityworksTest.js +12 -12
package/src/gis.ts
CHANGED
|
@@ -5,13 +5,13 @@ export class Gis {
|
|
|
5
5
|
/**
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
|
-
cw: any
|
|
8
|
+
cw: any
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @hidden
|
|
12
12
|
*/
|
|
13
13
|
constructor(cw) {
|
|
14
|
-
this.cw = cw
|
|
14
|
+
this.cw = cw
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -25,27 +25,29 @@ export class Gis {
|
|
|
25
25
|
*/
|
|
26
26
|
getConfig(whichType, whichId, getGisData: boolean = true, context: Array<string> = []) {
|
|
27
27
|
return new Promise((resolve, reject) => {
|
|
28
|
-
let path = 'Gis/MapService/Domain'
|
|
29
|
-
whichType = whichType.toLowerCase()
|
|
28
|
+
let path = 'Gis/MapService/Domain'
|
|
29
|
+
whichType = whichType.toLowerCase()
|
|
30
30
|
let data: {DomainId?: any, GroupId?: any, MapServiceId?: any, UserId?: any, GetGisData: boolean, Security: Array<string>}
|
|
31
31
|
switch(whichType) {
|
|
32
32
|
case 'domain':
|
|
33
33
|
data = {DomainId:whichId, GetGisData: getGisData, Security: context}
|
|
34
|
-
break
|
|
34
|
+
break
|
|
35
35
|
case 'group':
|
|
36
36
|
data = {GroupId:whichId, GetGisData: getGisData, Security: context}
|
|
37
|
-
break
|
|
37
|
+
break
|
|
38
38
|
case 'mapservice':
|
|
39
39
|
data = {MapServiceId:whichId, GetGisData: getGisData, Security: context}
|
|
40
|
-
break
|
|
40
|
+
break
|
|
41
41
|
case 'user':
|
|
42
42
|
data = {UserId:whichId, GetGisData: getGisData, Security: context}
|
|
43
|
-
break
|
|
43
|
+
break
|
|
44
44
|
}
|
|
45
45
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
46
|
-
resolve(response.Value)
|
|
47
|
-
})
|
|
48
|
-
|
|
46
|
+
resolve(response.Value)
|
|
47
|
+
}).catch(e => {
|
|
48
|
+
reject(e)
|
|
49
|
+
})
|
|
50
|
+
})
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
/**
|
|
@@ -56,14 +58,16 @@ export class Gis {
|
|
|
56
58
|
*/
|
|
57
59
|
domain(domainId, getGisData: boolean = true) {
|
|
58
60
|
return new Promise((resolve, reject) => {
|
|
59
|
-
let path = 'Gis/MapService/Domain'
|
|
61
|
+
let path = 'Gis/MapService/Domain'
|
|
60
62
|
let data = {
|
|
61
63
|
DomainId: domainId
|
|
62
64
|
}
|
|
63
65
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
64
|
-
resolve(response.Value)
|
|
65
|
-
})
|
|
66
|
-
|
|
66
|
+
resolve(response.Value)
|
|
67
|
+
}).catch(e => {
|
|
68
|
+
reject(e)
|
|
69
|
+
})
|
|
70
|
+
})
|
|
67
71
|
}
|
|
68
72
|
|
|
69
73
|
/**
|
|
@@ -74,14 +78,16 @@ export class Gis {
|
|
|
74
78
|
*/
|
|
75
79
|
downloadMobile(cacheId, getGisData: boolean = true) {
|
|
76
80
|
return new Promise((resolve, reject) => {
|
|
77
|
-
let path = 'Gis/MapService/DownloadMobileMapCache'
|
|
81
|
+
let path = 'Gis/MapService/DownloadMobileMapCache'
|
|
78
82
|
let data = {
|
|
79
83
|
MobileMapCacheId: cacheId
|
|
80
84
|
}
|
|
81
85
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
82
|
-
resolve(response.Value)
|
|
83
|
-
})
|
|
84
|
-
|
|
86
|
+
resolve(response.Value)
|
|
87
|
+
}).catch(e => {
|
|
88
|
+
reject(e)
|
|
89
|
+
})
|
|
90
|
+
})
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
/**
|
|
@@ -91,12 +97,14 @@ export class Gis {
|
|
|
91
97
|
*/
|
|
92
98
|
initialExtent() {
|
|
93
99
|
return new Promise((resolve, reject) => {
|
|
94
|
-
let path = 'Gis/MapService/InitialExtent'
|
|
100
|
+
let path = 'Gis/MapService/InitialExtent'
|
|
95
101
|
let data = {};
|
|
96
102
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
97
|
-
resolve(response.Value)
|
|
98
|
-
})
|
|
99
|
-
|
|
103
|
+
resolve(response.Value)
|
|
104
|
+
}).catch(e => {
|
|
105
|
+
reject(e)
|
|
106
|
+
})
|
|
107
|
+
})
|
|
100
108
|
}
|
|
101
109
|
|
|
102
110
|
/**
|
|
@@ -108,15 +116,17 @@ export class Gis {
|
|
|
108
116
|
*/
|
|
109
117
|
request(requestId, getGisData: boolean = true) {
|
|
110
118
|
return new Promise((resolve, reject) => {
|
|
111
|
-
let path = 'Gis/MapService/ServiceRequestConfiguration'
|
|
119
|
+
let path = 'Gis/MapService/ServiceRequestConfiguration'
|
|
112
120
|
let data = {
|
|
113
121
|
RequestId: requestId,
|
|
114
122
|
GetGisData: getGisData
|
|
115
123
|
}
|
|
116
124
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
117
|
-
resolve(response.Value)
|
|
118
|
-
})
|
|
119
|
-
|
|
125
|
+
resolve(response.Value)
|
|
126
|
+
}).catch(e => {
|
|
127
|
+
reject(e)
|
|
128
|
+
})
|
|
129
|
+
})
|
|
120
130
|
}
|
|
121
131
|
|
|
122
132
|
/**
|
|
@@ -128,15 +138,17 @@ export class Gis {
|
|
|
128
138
|
*/
|
|
129
139
|
inspection(inspectionId, getGisData: boolean = true) {
|
|
130
140
|
return new Promise((resolve, reject) => {
|
|
131
|
-
let path = 'Gis/MapService/InspectionConfiguration'
|
|
141
|
+
let path = 'Gis/MapService/InspectionConfiguration'
|
|
132
142
|
let data = {
|
|
133
143
|
InspectionId: inspectionId,
|
|
134
144
|
GetGisData: getGisData
|
|
135
145
|
}
|
|
136
146
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
137
|
-
resolve(response.Value)
|
|
138
|
-
})
|
|
139
|
-
|
|
147
|
+
resolve(response.Value)
|
|
148
|
+
}).catch(e => {
|
|
149
|
+
reject(e)
|
|
150
|
+
})
|
|
151
|
+
})
|
|
140
152
|
}
|
|
141
153
|
|
|
142
154
|
/**
|
|
@@ -148,15 +160,17 @@ export class Gis {
|
|
|
148
160
|
*/
|
|
149
161
|
workOrder(workOrderSid, getGisData: boolean = true) {
|
|
150
162
|
return new Promise((resolve, reject) => {
|
|
151
|
-
let path = 'Gis/MapService/WorkOrderConfiguration'
|
|
163
|
+
let path = 'Gis/MapService/WorkOrderConfiguration'
|
|
152
164
|
let data = {
|
|
153
165
|
WorkOrderSid: workOrderSid,
|
|
154
166
|
GetGisData: getGisData
|
|
155
167
|
}
|
|
156
168
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
157
|
-
resolve(response.Value)
|
|
158
|
-
})
|
|
159
|
-
|
|
169
|
+
resolve(response.Value)
|
|
170
|
+
}).catch(e => {
|
|
171
|
+
reject(e)
|
|
172
|
+
})
|
|
173
|
+
})
|
|
160
174
|
}
|
|
161
175
|
|
|
162
176
|
/**
|
|
@@ -170,7 +184,7 @@ export class Gis {
|
|
|
170
184
|
*/
|
|
171
185
|
user(context: Array<string> = [], allDomains: boolean = true, allGroups: boolean = true, getGisData: boolean = true) {
|
|
172
186
|
return new Promise((resolve, reject) => {
|
|
173
|
-
let path = 'Gis/MapService/User'
|
|
187
|
+
let path = 'Gis/MapService/User'
|
|
174
188
|
let data = {
|
|
175
189
|
AllDomains: allDomains,
|
|
176
190
|
AllGroups: allGroups,
|
|
@@ -178,23 +192,11 @@ export class Gis {
|
|
|
178
192
|
Security: context
|
|
179
193
|
}
|
|
180
194
|
this.cw.runRequest(path, {}).then((response: any) => {
|
|
181
|
-
resolve(response.Value)
|
|
182
|
-
})
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Get currently selected entities from the Cityworks install's session for your user
|
|
189
|
-
* @return {Object} Returns Promise object that represents an Object with the currently-selected entities
|
|
190
|
-
*/
|
|
191
|
-
selectedEntities() {
|
|
192
|
-
return new Promise((resolve, reject) => {
|
|
193
|
-
let path = 'General/AppData/SelectedEntities';
|
|
194
|
-
this.cw.runRequest(path, {}).then((response: any) => {
|
|
195
|
-
resolve(response.Value);
|
|
196
|
-
});
|
|
197
|
-
});
|
|
195
|
+
resolve(response.Value)
|
|
196
|
+
}).catch(e => {
|
|
197
|
+
reject(e)
|
|
198
|
+
})
|
|
199
|
+
})
|
|
198
200
|
}
|
|
199
201
|
|
|
200
202
|
/**
|
|
@@ -204,4 +206,37 @@ export class Gis {
|
|
|
204
206
|
* @return {Object} Returns Promise object that represents an object describing the provided Geocoder service configuration
|
|
205
207
|
*/
|
|
206
208
|
// Gis/GeoCode/GeocodeServer
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Get currently selected entities from the Cityworks install's session for your user
|
|
212
|
+
* @return {Object} Returns Promise object that represents an Object with the currently-selected entities
|
|
213
|
+
*/
|
|
214
|
+
selectedEntities() {
|
|
215
|
+
return new Promise((resolve, reject) => {
|
|
216
|
+
let path = 'General/AppData/SelectedEntities'
|
|
217
|
+
this.cw.runRequest(path, {}).then((response: any) => {
|
|
218
|
+
resolve(response.Value)
|
|
219
|
+
}).catch(e => {
|
|
220
|
+
reject(e)
|
|
221
|
+
})
|
|
222
|
+
})
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Get attributes available for provided entity
|
|
227
|
+
*
|
|
228
|
+
* @param {string} entityType - The entity type to describe
|
|
229
|
+
* @return {Object} Returns Promise object that represents a collection of attribute description objects
|
|
230
|
+
*/
|
|
231
|
+
getEntityAttributes(entityType:string) {
|
|
232
|
+
return new Promise((resolve, reject) => {
|
|
233
|
+
let data = {EntityType: entityType}
|
|
234
|
+
let path = 'AMS/Entity/Attributes'
|
|
235
|
+
this.cw.runRequest(path, data).then((response: any) => {
|
|
236
|
+
resolve(response.Value)
|
|
237
|
+
}).catch(e => {
|
|
238
|
+
reject(e)
|
|
239
|
+
})
|
|
240
|
+
})
|
|
241
|
+
}
|
|
207
242
|
}
|
package/src/inspection.ts
CHANGED
|
@@ -644,7 +644,7 @@ export class Inspection {
|
|
|
644
644
|
* @param {Array<string>} [entityTypes] - The Entity Type(s) to return potential inspections for
|
|
645
645
|
* @param {boolean} [canCreate] - If true, only return templates the user can create, ignored if false or null, default is true
|
|
646
646
|
* @param {Object} [options] - An object which can include: [IncludeInactive]: boolean, MaximumDateModified: Date, MinimumDateModified: Date, TemplateIds: Array<number>
|
|
647
|
-
* @return {Object} Returns Promise that represents a collection of all
|
|
647
|
+
* @return {Object} Returns Promise that represents a collection of all Inspections matching the provided parameters
|
|
648
648
|
*/
|
|
649
649
|
getTemplates(entityTypes?: Array<string>, canCreate?: boolean, options?: {IncludeInactive?: boolean, MaximumDateModified?: Date, MinimumDateModified?: Date, TemplateIds?: Array<number>}) {
|
|
650
650
|
return new Promise((resolve, reject) => {
|
package/src/inspection_admin.ts
CHANGED
|
@@ -14,4 +14,32 @@ export class InspectionAdmin {
|
|
|
14
14
|
this.cw = cw
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Get inspection templates
|
|
19
|
+
*
|
|
20
|
+
* @category Inspection Templates
|
|
21
|
+
* @param {Array<string>} [entityTypes] - The Entity Type(s) to return potential inspections for
|
|
22
|
+
* @param {boolean} [canCreate] - If true, only return templates the user can create, ignored if false or null, default is true
|
|
23
|
+
* @param {Object} [options] - An object which can include: [IncludeInactive]: boolean, MaximumDateModified: Date, MinimumDateModified: Date, TemplateIds: Array<number>
|
|
24
|
+
* @return {Object} Returns Promise that represents a collection of all Inspections matching the provided parameters
|
|
25
|
+
*/
|
|
26
|
+
getTemplates(entityTypes?: Array<string>, canCreate?: boolean, options?: {IncludeInactive?: boolean, MaximumDateModified?: Date, MinimumDateModified?: Date, TemplateIds?: Array<number>}) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
var data: {EntityTypes?: Array<string>, CanCreate?: boolean, IncludeInactive?: boolean, MaximumDateModified?: Date, MinimumDateModified?: Date, TemplateIds?: Array<number>} = {}
|
|
29
|
+
if(typeof(entityTypes)!=='undefined') {
|
|
30
|
+
data.EntityTypes = entityTypes
|
|
31
|
+
}
|
|
32
|
+
data.CanCreate = typeof(canCreate)!=='undefined' ? canCreate : true
|
|
33
|
+
if(typeof(options)==='object') {
|
|
34
|
+
_.forIn(options, (v, k) => {
|
|
35
|
+
data[k] = v
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
this.cw.runRequest('Ams/InspectionTemplate/Templates', data).then(r => {
|
|
39
|
+
resolve(r.Value)
|
|
40
|
+
}).catch(e => {
|
|
41
|
+
reject(e)
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
}
|
|
17
45
|
}
|
package/src/message_queue.ts
CHANGED
|
@@ -53,6 +53,8 @@ export class MessageQueue {
|
|
|
53
53
|
let path = 'General/WebHookEvent/ProcessMessages'
|
|
54
54
|
this.cw.runRequest(path, data).then((response: any) => {
|
|
55
55
|
// TODO
|
|
56
|
+
}).catch(e => {
|
|
57
|
+
reject(e)
|
|
56
58
|
})
|
|
57
59
|
})
|
|
58
60
|
}
|
|
@@ -78,6 +80,8 @@ export class MessageQueue {
|
|
|
78
80
|
let path = 'General/MessageQueue/ByIds'
|
|
79
81
|
this.cw.runRequest(path, data).then((response: any) => {
|
|
80
82
|
// TODO
|
|
83
|
+
}).catch(e => {
|
|
84
|
+
reject(e)
|
|
81
85
|
})
|
|
82
86
|
})
|
|
83
87
|
}
|
|
@@ -103,6 +107,8 @@ export class MessageQueue {
|
|
|
103
107
|
let path = 'General/MessageQueue/Delete'
|
|
104
108
|
this.cw.runRequest(path, data).then((response: any) => {
|
|
105
109
|
// TODO
|
|
110
|
+
}).catch(e => {
|
|
111
|
+
reject(e)
|
|
106
112
|
})
|
|
107
113
|
})
|
|
108
114
|
}
|
|
@@ -117,6 +123,8 @@ export class MessageQueue {
|
|
|
117
123
|
let path = 'General/MessageQueue/Preferences'
|
|
118
124
|
this.cw.runRequest(path, data).then((response: any) => {
|
|
119
125
|
// TODO
|
|
126
|
+
}).catch(e => {
|
|
127
|
+
reject(e)
|
|
120
128
|
})
|
|
121
129
|
})
|
|
122
130
|
}
|
|
@@ -148,6 +156,8 @@ export class MessageQueue {
|
|
|
148
156
|
response.Value = []
|
|
149
157
|
}
|
|
150
158
|
resolve(response.Value)
|
|
159
|
+
}).catch(e => {
|
|
160
|
+
reject(e)
|
|
151
161
|
})
|
|
152
162
|
})
|
|
153
163
|
}
|
package/src/request.ts
CHANGED
package/src/request_admin.ts
CHANGED
|
@@ -14,4 +14,22 @@ export class RequestAdmin {
|
|
|
14
14
|
this.cw = cw
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Get service request templates
|
|
19
|
+
*
|
|
20
|
+
* @category Requests Admin
|
|
21
|
+
* @param {Object} searchData - search data
|
|
22
|
+
* @return {Object} Returns Promise that represents a collection of all Service Request Templates
|
|
23
|
+
*/
|
|
24
|
+
getTemplates(searchData: Object) {
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
var data = searchData
|
|
27
|
+
this.cw.runRequest('Ams/ServiceRequestTemplate/Templates', data).then(r => {
|
|
28
|
+
resolve(r.Value)
|
|
29
|
+
}).catch(e => {
|
|
30
|
+
reject(e)
|
|
31
|
+
})
|
|
32
|
+
})
|
|
33
|
+
}
|
|
34
|
+
|
|
17
35
|
}
|
package/src/workorder.ts
CHANGED
|
@@ -208,7 +208,7 @@ export class WorkOrder {
|
|
|
208
208
|
var data = {}
|
|
209
209
|
if(workOrderSIds.length==0) {
|
|
210
210
|
// throw error
|
|
211
|
-
reject(new CWError(
|
|
211
|
+
reject(new CWError(101, 'No workorder S/IDs were provided.', {'workorderSId': workOrderSIds}))
|
|
212
212
|
} else {
|
|
213
213
|
var path = 'Ams/WorkOrder/ByIds';
|
|
214
214
|
if(_.isString(workOrderSIds[0])) {
|
|
@@ -242,7 +242,7 @@ export class WorkOrder {
|
|
|
242
242
|
var data = {}
|
|
243
243
|
if(workOrderSIds.length==0) {
|
|
244
244
|
// throw error
|
|
245
|
-
reject(new CWError(
|
|
245
|
+
reject(new CWError(102, 'No workorder S/IDs were provided.', {'workorderSId': workOrderSIds}))
|
|
246
246
|
} else {
|
|
247
247
|
var path = 'Ams/WorkOrder/ByIds';
|
|
248
248
|
if(_.isString(workOrderSIds[0])) {
|
package/src/workorder_admin.ts
CHANGED
|
@@ -14,4 +14,235 @@ export class WorkOrderAdmin {
|
|
|
14
14
|
this.cw = cw
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Get entity groups
|
|
19
|
+
*
|
|
20
|
+
* @category WorkOrders Admin
|
|
21
|
+
* @return {Object} Returns Promise that represents a collection of all entity groups
|
|
22
|
+
*/
|
|
23
|
+
getEntityGroups() {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
var data = {}
|
|
26
|
+
this.cw.runRequest('Ams/Entity/Groups', data).then(r => {
|
|
27
|
+
resolve(r.Value)
|
|
28
|
+
}).catch(e => {
|
|
29
|
+
reject(e)
|
|
30
|
+
})
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get entity types
|
|
36
|
+
*
|
|
37
|
+
* @category WorkOrders Admin
|
|
38
|
+
* @return {Object} Returns Promise that represents a collection of all GIS Work Order entity types
|
|
39
|
+
*/
|
|
40
|
+
getEntityTypes(entityGroups:Array<string>) {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
var data = {EntityGroups: entityGroups}
|
|
43
|
+
this.cw.runRequest('Ams/Designer/WOTemplates', data).then(r => {
|
|
44
|
+
resolve(r.Value)
|
|
45
|
+
}).catch(e => {
|
|
46
|
+
reject(e)
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Get work order templates
|
|
53
|
+
*
|
|
54
|
+
* @category WorkOrders Admin
|
|
55
|
+
* @return {Object} Returns Promise that represents a collection of all Work Order templates
|
|
56
|
+
*/
|
|
57
|
+
getTemplates(entityType:string, includeComments:boolean=true, includeInstructions:boolean=true) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
var data = {EntityType: entityType, IncludeComments: includeComments, IncludeInstructions: includeInstructions}
|
|
60
|
+
this.cw.runRequest('Ams/Designer/WOTemplates', data).then(r => {
|
|
61
|
+
resolve(r.Value)
|
|
62
|
+
}).catch(e => {
|
|
63
|
+
reject(e)
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Update Work Order template
|
|
70
|
+
*
|
|
71
|
+
* @category WorkOrders Admin
|
|
72
|
+
* @param {Object} wOTemplate - Obect that describes the Work Order Template
|
|
73
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
74
|
+
*/
|
|
75
|
+
updateTemplate(wOTemplate:Object) {
|
|
76
|
+
let valid_fields = ["AcctNum", "AutoCreateTask", "Cancel", "Comments", "CopyCustomFieldVal", "CycleFrom", "CycleIncludeWeekends", "CycleIntervalNum", "CycleIntervalUnit", "CycleType", "DaysToComplete", "DefaultProject", "DefaultProjectSid", "Description", "Effort", "ExpenseType", "Instructions", "IsReactive", "MaintScore", "NumDaysBefore", "Priority", "RequireAssetOnClose", "Shop", "Stage", "SubmitToEmployeeSid", "SupervisorEmployeeSid", "UnitsAccompDesc", "UnitsAccompDescLock", "WOCategory", "WOCustFieldCatId", "WOPrintTmpt", "WOTemplateId", "WorkMonth"]
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
var data = wOTemplate
|
|
79
|
+
this.cw.runRequest('Ams/Designer/WOTemplates', data).then(r => {
|
|
80
|
+
resolve(r.Value)
|
|
81
|
+
}).catch(e => {
|
|
82
|
+
reject(e)
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Get template group rights for provided WorkOrder Templates
|
|
89
|
+
*
|
|
90
|
+
* @category WorkOrders Admin
|
|
91
|
+
* @param {Array<number>} wOTemplateIds - Array one or more WorkOrder Template IDs
|
|
92
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
93
|
+
*/
|
|
94
|
+
getTemplateGroupRights(wOTemplateIds:Array<number>) {
|
|
95
|
+
return new Promise((resolve, reject) => {
|
|
96
|
+
var data = {WOTemplateIds: wOTemplateIds}
|
|
97
|
+
this.cw.runRequest('Ams/Designer/WOTemplates', data).then(r => { // TODO: Update this URL
|
|
98
|
+
resolve(r.Value)
|
|
99
|
+
}).catch(e => {
|
|
100
|
+
reject(e)
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get template activity services for provided WorkOrder Templates
|
|
107
|
+
*
|
|
108
|
+
* @category WorkOrders Admin
|
|
109
|
+
* @param {Array<number>} wOTemplateIds - Array one or more WorkOrder Template IDs
|
|
110
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
111
|
+
*/
|
|
112
|
+
getTemplateActivity(wOTemplateIds:Array<number>) {
|
|
113
|
+
return new Promise((resolve, reject) => {
|
|
114
|
+
var data = {WOTemplateIds: wOTemplateIds}
|
|
115
|
+
this.cw.runRequest('Ams/Designer/WOTemplateActivityService', data).then(r => {
|
|
116
|
+
resolve(r.Value)
|
|
117
|
+
}).catch(e => {
|
|
118
|
+
reject(e)
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Get fields which will be updated when provided WorkOrder Template instance closes
|
|
125
|
+
*
|
|
126
|
+
* @category WorkOrders Admin
|
|
127
|
+
* @param {Array<number>} wOTemplateIds - Array one or more WorkOrder Template IDs
|
|
128
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
129
|
+
*/
|
|
130
|
+
getUpdateFields(wOTemplateIds:Array<number>) {
|
|
131
|
+
return new Promise((resolve, reject) => {
|
|
132
|
+
var data = {WOTemplateIds: wOTemplateIds}
|
|
133
|
+
this.cw.runRequest('Ams/Designer/WOTemplateUpdateFields', data).then(r => {
|
|
134
|
+
resolve(r.Value)
|
|
135
|
+
}).catch(e => {
|
|
136
|
+
reject(e)
|
|
137
|
+
})
|
|
138
|
+
})
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Get equipment
|
|
143
|
+
*
|
|
144
|
+
* @category WorkOrders Admin
|
|
145
|
+
* @param {Array<number>} wOTemplateIds - WorkOrder Template ID
|
|
146
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
147
|
+
*/
|
|
148
|
+
getTemplateEquipment(wOTemplateId:number) {
|
|
149
|
+
return new Promise((resolve, reject) => {
|
|
150
|
+
var data = {WOTemplateId: wOTemplateId}
|
|
151
|
+
this.cw.runRequest('Ams/Designer/WOTemplateEquipment', data).then(r => {
|
|
152
|
+
resolve(r.Value)
|
|
153
|
+
}).catch(e => {
|
|
154
|
+
reject(e)
|
|
155
|
+
})
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Get labor
|
|
161
|
+
*
|
|
162
|
+
* @category WorkOrders Admin
|
|
163
|
+
* @param {Array<number>} wOTemplateIds - WorkOrder Template ID
|
|
164
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
165
|
+
*/
|
|
166
|
+
getTemplateLabor(wOTemplateId:number) {
|
|
167
|
+
return new Promise((resolve, reject) => {
|
|
168
|
+
var data = {WOTemplateId: wOTemplateId}
|
|
169
|
+
this.cw.runRequest('Ams/Designer/WOTemplateLabor', data).then(r => {
|
|
170
|
+
resolve(r.Value)
|
|
171
|
+
}).catch(e => {
|
|
172
|
+
reject(e)
|
|
173
|
+
})
|
|
174
|
+
})
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Get material
|
|
179
|
+
*
|
|
180
|
+
* @category WorkOrders Admin
|
|
181
|
+
* @param {number} wOTemplateId - WorkOrder Template ID
|
|
182
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
183
|
+
*/
|
|
184
|
+
getTemplateMaterial(wOTemplateId:number) {
|
|
185
|
+
return new Promise((resolve, reject) => {
|
|
186
|
+
var data = {WOTemplateId: wOTemplateId}
|
|
187
|
+
this.cw.runRequest('Ams/Designer/WOTemplateMaterial', data).then(r => {
|
|
188
|
+
resolve(r.Value)
|
|
189
|
+
}).catch(e => {
|
|
190
|
+
reject(e)
|
|
191
|
+
})
|
|
192
|
+
})
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Get map layer fields configured for provided work order template
|
|
197
|
+
*
|
|
198
|
+
* @category WorkOrders Admin
|
|
199
|
+
* @param {number} wOTemplateId - WorkOrder Template ID
|
|
200
|
+
* @return {Object} Returns Promise that represents a collection of all
|
|
201
|
+
*/
|
|
202
|
+
getTemplateMapLayerFields(wOTemplateId:number) {
|
|
203
|
+
return new Promise((resolve, reject) => {
|
|
204
|
+
var data = {WorkOrderTemplateId: wOTemplateId}
|
|
205
|
+
this.cw.runRequest('Ams/Designer/WorkOrderTemplateMapLayerFields', data).then(r => {
|
|
206
|
+
resolve(r.Value)
|
|
207
|
+
}).catch(e => {
|
|
208
|
+
reject(e)
|
|
209
|
+
})
|
|
210
|
+
})
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Get tasks configured for provided work order template
|
|
215
|
+
*
|
|
216
|
+
* @category WorkOrders Admin
|
|
217
|
+
* @param {number} wOTemplateId - WorkOrder Template ID
|
|
218
|
+
* @return {Object} Returns Promise that represents a collection of all tasks on work order template
|
|
219
|
+
*/
|
|
220
|
+
getTemplateTasks(wOTemplateId:number) {
|
|
221
|
+
return new Promise((resolve, reject) => {
|
|
222
|
+
var data = {WOTemplateId: wOTemplateId}
|
|
223
|
+
this.cw.runRequest('Ams/Tasks/ByWorkOrderTemplate', data).then(r => {
|
|
224
|
+
resolve(r.Value)
|
|
225
|
+
}).catch(e => {
|
|
226
|
+
reject(e)
|
|
227
|
+
})
|
|
228
|
+
})
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Get inspections connected to provided work order template
|
|
233
|
+
*
|
|
234
|
+
* @category WorkOrders Admin
|
|
235
|
+
* @param {number} wOTemplateId - WorkOrder Template ID
|
|
236
|
+
* @return {Object} Returns Promise that represents a collection of all tasks on work order template
|
|
237
|
+
*/
|
|
238
|
+
getRelatedInspectionTemplates(wOTemplateId:number) {
|
|
239
|
+
return new Promise((resolve, reject) => {
|
|
240
|
+
var data = {WOTemplateId: wOTemplateId}
|
|
241
|
+
this.cw.runRequest('Ams/Designer/WOTemplateInspections', data).then(r => {
|
|
242
|
+
resolve(r.Value)
|
|
243
|
+
}).catch(e => {
|
|
244
|
+
reject(e)
|
|
245
|
+
})
|
|
246
|
+
})
|
|
247
|
+
}
|
|
17
248
|
}
|
package/test/01.cityworksTest.js
CHANGED
|
@@ -28,7 +28,7 @@ describe('[Cityworks (construct)] function test', () => {
|
|
|
28
28
|
describe('[Cityworks::authenticate] function test', () => {
|
|
29
29
|
it('should throw Unknown Error if username provided is not known', (done) => {
|
|
30
30
|
cw1.authenticate('myuser', 'mypassword').then(res => {
|
|
31
|
-
assert.isUndefined(cw1.Token);
|
|
31
|
+
// assert.isUndefined(cw1.Token);
|
|
32
32
|
done();
|
|
33
33
|
})
|
|
34
34
|
.catch(error => {
|
|
@@ -38,19 +38,19 @@ describe('[Cityworks::authenticate] function test', () => {
|
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
// TODO: Uncomment for commit
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
41
|
+
it('should throw invalid login error if password provided is not provided user\'s password', () => {
|
|
42
|
+
let cw4 = new Cityworks(process.env.domain, {path:process.env.path})
|
|
43
|
+
cw4.authenticate('mrrobot', 'mypassword').then(resp => {
|
|
44
|
+
// assert.isNotEmpty(cw4.Token);
|
|
45
|
+
return true;
|
|
46
|
+
}).catch(error => {
|
|
47
|
+
assert.equal(error.message, 'Invalid Credentials');
|
|
48
|
+
return true;
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
describe('[
|
|
53
|
+
describe('[Cityworks::validateToken] function test', () => {
|
|
54
54
|
it('should have a valid token set, if logged in', (done) => {
|
|
55
55
|
cw1.authenticate(process.env.login, process.env.password).then(resp => {
|
|
56
56
|
cw1.validateToken(cw1.Token).then(res => {
|