@esri/solution-common 3.0.0 → 3.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.
Files changed (261) hide show
  1. package/dist/esm/featureServiceHelpers.js +20 -2
  2. package/dist/esm/featureServiceHelpers.js.map +1 -1
  3. package/dist/esm/resourceHelpers.d.ts +3 -2
  4. package/dist/esm/resourceHelpers.js +4 -3
  5. package/dist/esm/resourceHelpers.js.map +1 -1
  6. package/dist/esm/resources/copyAssociatedFiles.d.ts +17 -2
  7. package/dist/esm/resources/copyAssociatedFiles.js +106 -42
  8. package/dist/esm/resources/copyAssociatedFiles.js.map +1 -1
  9. package/dist/esm/resources/copyResourceIntoZip.js +8 -1
  10. package/dist/esm/resources/copyResourceIntoZip.js.map +1 -1
  11. package/dist/esm/resources/getItemResourcesPaths.js +9 -2
  12. package/dist/esm/resources/getItemResourcesPaths.js.map +1 -1
  13. package/package.json +3 -3
  14. package/dist/node/completeItem.d.ts +0 -29
  15. package/dist/node/completeItem.js +0 -82
  16. package/dist/node/completeItem.js.map +0 -1
  17. package/dist/node/create-hub-request-options.d.ts +0 -29
  18. package/dist/node/create-hub-request-options.js +0 -64
  19. package/dist/node/create-hub-request-options.js.map +0 -1
  20. package/dist/node/deleteHelpers/deleteEmptyGroups.d.ts +0 -24
  21. package/dist/node/deleteHelpers/deleteEmptyGroups.js +0 -42
  22. package/dist/node/deleteHelpers/deleteEmptyGroups.js.map +0 -1
  23. package/dist/node/deleteHelpers/deleteGroupIfEmpty.d.ts +0 -27
  24. package/dist/node/deleteHelpers/deleteGroupIfEmpty.js +0 -97
  25. package/dist/node/deleteHelpers/deleteGroupIfEmpty.js.map +0 -1
  26. package/dist/node/deleteHelpers/deleteSolutionContents.d.ts +0 -38
  27. package/dist/node/deleteHelpers/deleteSolutionContents.js +0 -130
  28. package/dist/node/deleteHelpers/deleteSolutionContents.js.map +0 -1
  29. package/dist/node/deleteHelpers/deleteSolutionFolder.d.ts +0 -29
  30. package/dist/node/deleteHelpers/deleteSolutionFolder.js +0 -79
  31. package/dist/node/deleteHelpers/deleteSolutionFolder.js.map +0 -1
  32. package/dist/node/deleteHelpers/deleteSolutionItem.d.ts +0 -30
  33. package/dist/node/deleteHelpers/deleteSolutionItem.js +0 -54
  34. package/dist/node/deleteHelpers/deleteSolutionItem.js.map +0 -1
  35. package/dist/node/deleteHelpers/index.d.ts +0 -22
  36. package/dist/node/deleteHelpers/index.js +0 -26
  37. package/dist/node/deleteHelpers/index.js.map +0 -1
  38. package/dist/node/deleteHelpers/reconstructBuildOrderIds.d.ts +0 -27
  39. package/dist/node/deleteHelpers/reconstructBuildOrderIds.js +0 -34
  40. package/dist/node/deleteHelpers/reconstructBuildOrderIds.js.map +0 -1
  41. package/dist/node/deleteHelpers/removeItems.d.ts +0 -34
  42. package/dist/node/deleteHelpers/removeItems.js +0 -112
  43. package/dist/node/deleteHelpers/removeItems.js.map +0 -1
  44. package/dist/node/deleteHelpers/reportProgress.d.ts +0 -27
  45. package/dist/node/deleteHelpers/reportProgress.js +0 -46
  46. package/dist/node/deleteHelpers/reportProgress.js.map +0 -1
  47. package/dist/node/deleteSolution.d.ts +0 -55
  48. package/dist/node/deleteSolution.js +0 -107
  49. package/dist/node/deleteSolution.js.map +0 -1
  50. package/dist/node/dependencies.d.ts +0 -26
  51. package/dist/node/dependencies.js +0 -171
  52. package/dist/node/dependencies.js.map +0 -1
  53. package/dist/node/featureServiceHelpers.d.ts +0 -791
  54. package/dist/node/featureServiceHelpers.js +0 -2403
  55. package/dist/node/featureServiceHelpers.js.map +0 -1
  56. package/dist/node/generalHelpers.d.ts +0 -372
  57. package/dist/node/generalHelpers.js +0 -842
  58. package/dist/node/generalHelpers.js.map +0 -1
  59. package/dist/node/get-subscription-info.d.ts +0 -27
  60. package/dist/node/get-subscription-info.js +0 -39
  61. package/dist/node/get-subscription-info.js.map +0 -1
  62. package/dist/node/getDeletableSolutionInfo.d.ts +0 -29
  63. package/dist/node/getDeletableSolutionInfo.js +0 -53
  64. package/dist/node/getDeletableSolutionInfo.js.map +0 -1
  65. package/dist/node/getItemTypeAbbrev.d.ts +0 -19
  66. package/dist/node/getItemTypeAbbrev.js +0 -184
  67. package/dist/node/getItemTypeAbbrev.js.map +0 -1
  68. package/dist/node/getSolutionSummary.d.ts +0 -27
  69. package/dist/node/getSolutionSummary.js +0 -101
  70. package/dist/node/getSolutionSummary.js.map +0 -1
  71. package/dist/node/index.d.ts +0 -44
  72. package/dist/node/index.js +0 -48
  73. package/dist/node/index.js.map +0 -1
  74. package/dist/node/interfaces.d.ts +0 -1321
  75. package/dist/node/interfaces.js +0 -75
  76. package/dist/node/interfaces.js.map +0 -1
  77. package/dist/node/libConnectors.d.ts +0 -73
  78. package/dist/node/libConnectors.js +0 -115
  79. package/dist/node/libConnectors.js.map +0 -1
  80. package/dist/node/migrations/apply-schema.d.ts +0 -24
  81. package/dist/node/migrations/apply-schema.js +0 -36
  82. package/dist/node/migrations/apply-schema.js.map +0 -1
  83. package/dist/node/migrations/is-legacy-solution.d.ts +0 -24
  84. package/dist/node/migrations/is-legacy-solution.js +0 -40
  85. package/dist/node/migrations/is-legacy-solution.js.map +0 -1
  86. package/dist/node/migrations/upgrade-three-dot-one.d.ts +0 -27
  87. package/dist/node/migrations/upgrade-three-dot-one.js +0 -49
  88. package/dist/node/migrations/upgrade-three-dot-one.js.map +0 -1
  89. package/dist/node/migrations/upgrade-three-dot-zero.d.ts +0 -27
  90. package/dist/node/migrations/upgrade-three-dot-zero.js +0 -43
  91. package/dist/node/migrations/upgrade-three-dot-zero.js.map +0 -1
  92. package/dist/node/migrations/upgrade-two-dot-five.d.ts +0 -24
  93. package/dist/node/migrations/upgrade-two-dot-five.js +0 -73
  94. package/dist/node/migrations/upgrade-two-dot-five.js.map +0 -1
  95. package/dist/node/migrations/upgrade-two-dot-four.d.ts +0 -24
  96. package/dist/node/migrations/upgrade-two-dot-four.js +0 -72
  97. package/dist/node/migrations/upgrade-two-dot-four.js.map +0 -1
  98. package/dist/node/migrations/upgrade-two-dot-one.d.ts +0 -7
  99. package/dist/node/migrations/upgrade-two-dot-one.js +0 -39
  100. package/dist/node/migrations/upgrade-two-dot-one.js.map +0 -1
  101. package/dist/node/migrations/upgrade-two-dot-seven.d.ts +0 -23
  102. package/dist/node/migrations/upgrade-two-dot-seven.js +0 -58
  103. package/dist/node/migrations/upgrade-two-dot-seven.js.map +0 -1
  104. package/dist/node/migrations/upgrade-two-dot-six.d.ts +0 -27
  105. package/dist/node/migrations/upgrade-two-dot-six.js +0 -61
  106. package/dist/node/migrations/upgrade-two-dot-six.js.map +0 -1
  107. package/dist/node/migrations/upgrade-two-dot-three.d.ts +0 -23
  108. package/dist/node/migrations/upgrade-two-dot-three.js +0 -55
  109. package/dist/node/migrations/upgrade-two-dot-three.js.map +0 -1
  110. package/dist/node/migrations/upgrade-two-dot-two.d.ts +0 -23
  111. package/dist/node/migrations/upgrade-two-dot-two.js +0 -58
  112. package/dist/node/migrations/upgrade-two-dot-two.js.map +0 -1
  113. package/dist/node/migrations/upgrade-two-dot-zero.d.ts +0 -44
  114. package/dist/node/migrations/upgrade-two-dot-zero.js +0 -95
  115. package/dist/node/migrations/upgrade-two-dot-zero.js.map +0 -1
  116. package/dist/node/migrator.d.ts +0 -25
  117. package/dist/node/migrator.js +0 -77
  118. package/dist/node/migrator.js.map +0 -1
  119. package/dist/node/polyfills.d.ts +0 -40
  120. package/dist/node/polyfills.js +0 -98
  121. package/dist/node/polyfills.js.map +0 -1
  122. package/dist/node/resourceHelpers.d.ts +0 -190
  123. package/dist/node/resourceHelpers.js +0 -390
  124. package/dist/node/resourceHelpers.js.map +0 -1
  125. package/dist/node/resources/add-resource-from-blob.d.ts +0 -26
  126. package/dist/node/resources/add-resource-from-blob.js +0 -52
  127. package/dist/node/resources/add-resource-from-blob.js.map +0 -1
  128. package/dist/node/resources/addMetadataFromBlob.d.ts +0 -25
  129. package/dist/node/resources/addMetadataFromBlob.js +0 -43
  130. package/dist/node/resources/addMetadataFromBlob.js.map +0 -1
  131. package/dist/node/resources/convert-item-resource-to-storage-resource.d.ts +0 -32
  132. package/dist/node/resources/convert-item-resource-to-storage-resource.js +0 -70
  133. package/dist/node/resources/convert-item-resource-to-storage-resource.js.map +0 -1
  134. package/dist/node/resources/convert-storage-resource-to-item-resource.d.ts +0 -29
  135. package/dist/node/resources/convert-storage-resource-to-item-resource.js +0 -70
  136. package/dist/node/resources/convert-storage-resource-to-item-resource.js.map +0 -1
  137. package/dist/node/resources/copyAssociatedFiles.d.ts +0 -52
  138. package/dist/node/resources/copyAssociatedFiles.js +0 -237
  139. package/dist/node/resources/copyAssociatedFiles.js.map +0 -1
  140. package/dist/node/resources/copyDataIntoItem.d.ts +0 -33
  141. package/dist/node/resources/copyDataIntoItem.js +0 -63
  142. package/dist/node/resources/copyDataIntoItem.js.map +0 -1
  143. package/dist/node/resources/copyMetadataIntoItem.d.ts +0 -26
  144. package/dist/node/resources/copyMetadataIntoItem.js +0 -46
  145. package/dist/node/resources/copyMetadataIntoItem.js.map +0 -1
  146. package/dist/node/resources/copyResourceIntoZip.d.ts +0 -33
  147. package/dist/node/resources/copyResourceIntoZip.js +0 -71
  148. package/dist/node/resources/copyResourceIntoZip.js.map +0 -1
  149. package/dist/node/resources/copyZipIntoItem.d.ts +0 -25
  150. package/dist/node/resources/copyZipIntoItem.js +0 -54
  151. package/dist/node/resources/copyZipIntoItem.js.map +0 -1
  152. package/dist/node/resources/createCopyResults.d.ts +0 -25
  153. package/dist/node/resources/createCopyResults.js +0 -36
  154. package/dist/node/resources/createCopyResults.js.map +0 -1
  155. package/dist/node/resources/get-blob.d.ts +0 -26
  156. package/dist/node/resources/get-blob.js +0 -27
  157. package/dist/node/resources/get-blob.js.map +0 -1
  158. package/dist/node/resources/getItemResourcesFilesFromPaths.d.ts +0 -24
  159. package/dist/node/resources/getItemResourcesFilesFromPaths.js +0 -49
  160. package/dist/node/resources/getItemResourcesFilesFromPaths.js.map +0 -1
  161. package/dist/node/resources/getItemResourcesPaths.d.ts +0 -26
  162. package/dist/node/resources/getItemResourcesPaths.js +0 -66
  163. package/dist/node/resources/getItemResourcesPaths.js.map +0 -1
  164. package/dist/node/resources/index.d.ts +0 -29
  165. package/dist/node/resources/index.js +0 -33
  166. package/dist/node/resources/index.js.map +0 -1
  167. package/dist/node/resources/solution-resource.d.ts +0 -35
  168. package/dist/node/resources/solution-resource.js +0 -31
  169. package/dist/node/resources/solution-resource.js.map +0 -1
  170. package/dist/node/resources/transform-resource-paths-to-solution-resources.d.ts +0 -56
  171. package/dist/node/resources/transform-resource-paths-to-solution-resources.js +0 -146
  172. package/dist/node/resources/transform-resource-paths-to-solution-resources.js.map +0 -1
  173. package/dist/node/restHelpers.d.ts +0 -585
  174. package/dist/node/restHelpers.js +0 -1887
  175. package/dist/node/restHelpers.js.map +0 -1
  176. package/dist/node/restHelpersGet.d.ts +0 -288
  177. package/dist/node/restHelpersGet.js +0 -804
  178. package/dist/node/restHelpersGet.js.map +0 -1
  179. package/dist/node/sharing/index.d.ts +0 -16
  180. package/dist/node/sharing/index.js +0 -20
  181. package/dist/node/sharing/index.js.map +0 -1
  182. package/dist/node/sharing/share-item-to-groups.d.ts +0 -26
  183. package/dist/node/sharing/share-item-to-groups.js +0 -44
  184. package/dist/node/sharing/share-item-to-groups.js.map +0 -1
  185. package/dist/node/templatization.d.ts +0 -139
  186. package/dist/node/templatization.js +0 -314
  187. package/dist/node/templatization.js.map +0 -1
  188. package/dist/node/trackingHelpers.d.ts +0 -116
  189. package/dist/node/trackingHelpers.js +0 -217
  190. package/dist/node/trackingHelpers.js.map +0 -1
  191. package/dist/node/velocityHelpers.d.ts +0 -57
  192. package/dist/node/velocityHelpers.js +0 -135
  193. package/dist/node/velocityHelpers.js.map +0 -1
  194. package/dist/node/workforceHelpers.d.ts +0 -115
  195. package/dist/node/workforceHelpers.js +0 -747
  196. package/dist/node/workforceHelpers.js.map +0 -1
  197. package/dist/umd/common.umd.js +0 -15471
  198. package/dist/umd/common.umd.js.map +0 -1
  199. package/dist/umd/common.umd.min.js +0 -19
  200. package/dist/umd/common.umd.min.js.map +0 -1
  201. package/dist/umd/src/completeItem.d.ts +0 -29
  202. package/dist/umd/src/create-hub-request-options.d.ts +0 -29
  203. package/dist/umd/src/deleteHelpers/deleteEmptyGroups.d.ts +0 -24
  204. package/dist/umd/src/deleteHelpers/deleteGroupIfEmpty.d.ts +0 -27
  205. package/dist/umd/src/deleteHelpers/deleteSolutionContents.d.ts +0 -38
  206. package/dist/umd/src/deleteHelpers/deleteSolutionFolder.d.ts +0 -29
  207. package/dist/umd/src/deleteHelpers/deleteSolutionItem.d.ts +0 -30
  208. package/dist/umd/src/deleteHelpers/index.d.ts +0 -22
  209. package/dist/umd/src/deleteHelpers/reconstructBuildOrderIds.d.ts +0 -27
  210. package/dist/umd/src/deleteHelpers/removeItems.d.ts +0 -34
  211. package/dist/umd/src/deleteHelpers/reportProgress.d.ts +0 -27
  212. package/dist/umd/src/deleteSolution.d.ts +0 -55
  213. package/dist/umd/src/dependencies.d.ts +0 -26
  214. package/dist/umd/src/featureServiceHelpers.d.ts +0 -791
  215. package/dist/umd/src/generalHelpers.d.ts +0 -372
  216. package/dist/umd/src/get-subscription-info.d.ts +0 -27
  217. package/dist/umd/src/getDeletableSolutionInfo.d.ts +0 -29
  218. package/dist/umd/src/getItemTypeAbbrev.d.ts +0 -19
  219. package/dist/umd/src/getSolutionSummary.d.ts +0 -27
  220. package/dist/umd/src/index.d.ts +0 -44
  221. package/dist/umd/src/interfaces.d.ts +0 -1321
  222. package/dist/umd/src/libConnectors.d.ts +0 -73
  223. package/dist/umd/src/migrations/apply-schema.d.ts +0 -24
  224. package/dist/umd/src/migrations/is-legacy-solution.d.ts +0 -24
  225. package/dist/umd/src/migrations/upgrade-three-dot-one.d.ts +0 -27
  226. package/dist/umd/src/migrations/upgrade-three-dot-zero.d.ts +0 -27
  227. package/dist/umd/src/migrations/upgrade-two-dot-five.d.ts +0 -24
  228. package/dist/umd/src/migrations/upgrade-two-dot-four.d.ts +0 -24
  229. package/dist/umd/src/migrations/upgrade-two-dot-one.d.ts +0 -7
  230. package/dist/umd/src/migrations/upgrade-two-dot-seven.d.ts +0 -23
  231. package/dist/umd/src/migrations/upgrade-two-dot-six.d.ts +0 -27
  232. package/dist/umd/src/migrations/upgrade-two-dot-three.d.ts +0 -23
  233. package/dist/umd/src/migrations/upgrade-two-dot-two.d.ts +0 -23
  234. package/dist/umd/src/migrations/upgrade-two-dot-zero.d.ts +0 -44
  235. package/dist/umd/src/migrator.d.ts +0 -25
  236. package/dist/umd/src/polyfills.d.ts +0 -40
  237. package/dist/umd/src/resourceHelpers.d.ts +0 -190
  238. package/dist/umd/src/resources/add-resource-from-blob.d.ts +0 -26
  239. package/dist/umd/src/resources/addMetadataFromBlob.d.ts +0 -25
  240. package/dist/umd/src/resources/convert-item-resource-to-storage-resource.d.ts +0 -32
  241. package/dist/umd/src/resources/convert-storage-resource-to-item-resource.d.ts +0 -29
  242. package/dist/umd/src/resources/copyAssociatedFiles.d.ts +0 -52
  243. package/dist/umd/src/resources/copyDataIntoItem.d.ts +0 -33
  244. package/dist/umd/src/resources/copyMetadataIntoItem.d.ts +0 -26
  245. package/dist/umd/src/resources/copyResourceIntoZip.d.ts +0 -33
  246. package/dist/umd/src/resources/copyZipIntoItem.d.ts +0 -25
  247. package/dist/umd/src/resources/createCopyResults.d.ts +0 -25
  248. package/dist/umd/src/resources/get-blob.d.ts +0 -26
  249. package/dist/umd/src/resources/getItemResourcesFilesFromPaths.d.ts +0 -24
  250. package/dist/umd/src/resources/getItemResourcesPaths.d.ts +0 -26
  251. package/dist/umd/src/resources/index.d.ts +0 -29
  252. package/dist/umd/src/resources/solution-resource.d.ts +0 -35
  253. package/dist/umd/src/resources/transform-resource-paths-to-solution-resources.d.ts +0 -56
  254. package/dist/umd/src/restHelpers.d.ts +0 -585
  255. package/dist/umd/src/restHelpersGet.d.ts +0 -288
  256. package/dist/umd/src/sharing/index.d.ts +0 -16
  257. package/dist/umd/src/sharing/share-item-to-groups.d.ts +0 -26
  258. package/dist/umd/src/templatization.d.ts +0 -139
  259. package/dist/umd/src/trackingHelpers.d.ts +0 -116
  260. package/dist/umd/src/velocityHelpers.d.ts +0 -57
  261. package/dist/umd/src/workforceHelpers.d.ts +0 -115
@@ -1,747 +0,0 @@
1
- "use strict";
2
- /** @license
3
- * Copyright 2020 Esri
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports._applyEdits = exports._updateDispatchers = exports._getField = exports._getAddFeatures = exports._updateUrl = exports._getFields = exports.fineTuneCreatedWorkforceItem = exports._getURLs = exports.urlTest = exports.getKeyWorkforceProperties = exports.isWorkforceProject = exports._templatizeWorkforceDispatcherOrWorker = exports._templatizeWorkforceProject = exports.postProcessWorkforceTemplates = exports.getReplaceValue = exports.getLayerId = exports._templatizeUrlTemplate = exports.getUrlDependencies = exports._getAssignmentIntegrationInfos = exports._getAssignmentTypeInfos = exports._updateGlobalIdAndAssignmentType = exports.getWorkforceServiceInfo = exports.getWorkforceDependencies = exports.templatizeWorkforce = exports.extractWorkforceDependencies = exports.convertWorkforceItemToTemplate = void 0;
19
- /**
20
- * Provides general helper functions.
21
- *
22
- * @module workforceHelpers
23
- */
24
- const arcgis_rest_feature_layer_1 = require("@esri/arcgis-rest-feature-layer");
25
- const generalHelpers_1 = require("./generalHelpers");
26
- const restHelpers_1 = require("./restHelpers");
27
- const templatization_1 = require("./templatization");
28
- const featureServiceHelpers_1 = require("./featureServiceHelpers");
29
- //#region workforce v1
30
- /**
31
- * Converts an workforce item to a template.
32
- *
33
- * @param itemTemplate template for the workforce project item
34
- * @param authentication credentials for any requests
35
- * @param templateDictionary Hash of key details used for variable replacement
36
- * @returns templatized itemTemplate
37
- */
38
- function convertWorkforceItemToTemplate(itemTemplate, authentication, templateDictionary) {
39
- return new Promise((resolve, reject) => {
40
- // This function is specific to workforce v1 project structure
41
- // Key properties that contain item IDs for the workforce project type
42
- const keyProperties = getKeyWorkforceProperties(1);
43
- // The templates data to process
44
- const data = itemTemplate.data;
45
- if (data) {
46
- // Extract dependencies
47
- extractWorkforceDependencies(data, keyProperties, authentication).then(results => {
48
- itemTemplate.dependencies = results.dependencies;
49
- // templatize key properties
50
- itemTemplate.data = templatizeWorkforce(data, keyProperties, results.urlHash, templateDictionary);
51
- resolve(itemTemplate);
52
- }, e => reject((0, generalHelpers_1.fail)(e)));
53
- }
54
- else {
55
- resolve(itemTemplate);
56
- }
57
- });
58
- }
59
- exports.convertWorkforceItemToTemplate = convertWorkforceItemToTemplate;
60
- /**
61
- * Gets the ids of the dependencies of the workforce project.
62
- *
63
- * @param data itemTemplate data
64
- * @param keyProperties workforce project properties that contain references to dependencies
65
- * @param authentication credentials for any requests
66
- * @returns List of dependencies ids
67
- */
68
- function extractWorkforceDependencies(data, keyProperties, authentication) {
69
- return new Promise((resolve, reject) => {
70
- const deps = [];
71
- // get the ids for the service dependencies
72
- // "workerWebMapId" and "dispatcherWebMapId" are already IDs and don't have a serviceItemId
73
- keyProperties.forEach(p => {
74
- const serviceItemId = (0, generalHelpers_1.getProp)(data, p + ".serviceItemId");
75
- const v = (0, generalHelpers_1.getProp)(data, p);
76
- if (serviceItemId) {
77
- if (deps.indexOf(serviceItemId) === -1) {
78
- deps.push(serviceItemId);
79
- }
80
- }
81
- else {
82
- (0, generalHelpers_1.idTest)(v, deps);
83
- }
84
- });
85
- if ((0, generalHelpers_1.getProp)(data, "assignmentIntegrations")) {
86
- let requests = [];
87
- let urls = [];
88
- data.assignmentIntegrations.forEach((ai) => {
89
- if (ai.assignmentTypes) {
90
- const assignmentKeys = Object.keys(ai.assignmentTypes);
91
- assignmentKeys.forEach(k => {
92
- const urlTemplate = ai.assignmentTypes[k].urlTemplate;
93
- (0, generalHelpers_1.idTest)(urlTemplate, deps);
94
- const serviceRequests = urlTest(urlTemplate, authentication);
95
- if (Array.isArray(serviceRequests.requests) &&
96
- serviceRequests.requests.length > 0) {
97
- requests = requests.concat(serviceRequests.requests);
98
- urls = urls.concat(serviceRequests.urls);
99
- }
100
- });
101
- }
102
- });
103
- if (requests.length > 0) {
104
- Promise.all(requests).then(results => {
105
- const urlHash = {};
106
- // Get the serviceItemId for the url
107
- /* istanbul ignore else */
108
- if (Array.isArray(results)) {
109
- results.forEach((result, i) => {
110
- /* istanbul ignore else */
111
- if (result.serviceItemId) {
112
- urlHash[urls[i]] = result.serviceItemId;
113
- /* istanbul ignore else */
114
- if (deps.indexOf(result.serviceItemId) === -1) {
115
- deps.push(result.serviceItemId);
116
- }
117
- }
118
- });
119
- }
120
- resolve({
121
- dependencies: deps,
122
- urlHash: urlHash
123
- });
124
- }, e => reject((0, generalHelpers_1.fail)(e)));
125
- }
126
- else {
127
- resolve({
128
- dependencies: deps,
129
- urlHash: {}
130
- });
131
- }
132
- }
133
- else {
134
- resolve({
135
- dependencies: deps,
136
- urlHash: {}
137
- });
138
- }
139
- });
140
- }
141
- exports.extractWorkforceDependencies = extractWorkforceDependencies;
142
- /**
143
- * Templatizes key item properties.
144
- *
145
- * @param data itemTemplate data
146
- * @param keyProperties workforce project properties that should be templatized
147
- * @param urlHash a key value pair of url and itemId
148
- * @param templateDictionary Hash of key details used for variable replacement
149
- * @returns an updated data object to be stored in the template
150
- */
151
- function templatizeWorkforce(data, keyProperties, urlHash, templateDictionary) {
152
- keyProperties.forEach(p => {
153
- /* istanbul ignore else */
154
- if ((0, generalHelpers_1.getProp)(data, p)) {
155
- if ((0, generalHelpers_1.getProp)(data[p], "serviceItemId")) {
156
- // templatize properties with id and url
157
- const id = data[p].serviceItemId;
158
- let serviceItemIdSuffix = ".itemId";
159
- /* istanbul ignore else */
160
- if ((0, generalHelpers_1.getProp)(data[p], "url")) {
161
- const layerId = getLayerId(data[p].url);
162
- (0, featureServiceHelpers_1.cacheLayerInfo)(layerId, id, data[p].url, templateDictionary);
163
- data[p].url = (0, templatization_1.templatizeTerm)(id, id, getReplaceValue(layerId, ".url"));
164
- serviceItemIdSuffix = getReplaceValue(layerId, serviceItemIdSuffix);
165
- }
166
- data[p].serviceItemId = (0, templatization_1.templatizeTerm)(id, id, serviceItemIdSuffix);
167
- }
168
- else {
169
- // templatize simple id properties
170
- data[p] = (0, templatization_1.templatizeTerm)(data[p], data[p], ".itemId");
171
- }
172
- }
173
- });
174
- data["folderId"] = "{{folderId}}";
175
- // templatize app integrations
176
- const integrations = data.assignmentIntegrations || [];
177
- integrations.forEach(i => {
178
- _templatizeUrlTemplate(i, urlHash);
179
- /* istanbul ignore else */
180
- if (i.assignmentTypes) {
181
- const assignmentKeys = Object.keys(i.assignmentTypes);
182
- assignmentKeys.forEach(k => {
183
- _templatizeUrlTemplate(i.assignmentTypes[k], urlHash);
184
- });
185
- }
186
- });
187
- return data;
188
- }
189
- exports.templatizeWorkforce = templatizeWorkforce;
190
- //#endregion
191
- /**
192
- * Evaluate key properties in the workforce service of additional items that are needed
193
- *
194
- * @param itemTemplate template for the workforce project item
195
- * @param dependencies list of the items dependencies
196
- * @returns an array of objects with dependency ids
197
- */
198
- function getWorkforceDependencies(itemTemplate, dependencies) {
199
- const properties = itemTemplate.item.properties || {};
200
- const keyProperties = getKeyWorkforceProperties(2);
201
- dependencies = keyProperties.reduce(function (acc, v) {
202
- /* istanbul ignore else */
203
- if (properties[v] && dependencies.indexOf(properties[v]) < 0) {
204
- acc.push(properties[v]);
205
- }
206
- return acc;
207
- }, dependencies);
208
- // We also need the dependencies listed in the Assignment Integrations table
209
- const infos = (0, generalHelpers_1.getProp)(itemTemplate, "properties.workforceInfos.assignmentIntegrationInfos");
210
- /* istanbul ignore else */
211
- if (infos && infos.length > 0) {
212
- infos.forEach((info) => {
213
- const infoKeys = Object.keys(info);
214
- /* istanbul ignore else */
215
- if (infoKeys.indexOf("dependencies") > -1) {
216
- info["dependencies"].forEach((d) => {
217
- /* istanbul ignore else */
218
- if (dependencies.indexOf(d) < 0) {
219
- dependencies.push(d);
220
- }
221
- });
222
- }
223
- });
224
- }
225
- return dependencies.map(d => {
226
- return { id: d, name: "" };
227
- });
228
- }
229
- exports.getWorkforceDependencies = getWorkforceDependencies;
230
- function getWorkforceServiceInfo(properties, url, authentication) {
231
- return new Promise((resolve, reject) => {
232
- url = url.replace("/rest/admin/services", "/rest/services");
233
- url = _updateUrl(url);
234
- const requests = [
235
- (0, arcgis_rest_feature_layer_1.queryFeatures)({
236
- url: `${url}3`,
237
- where: "1=1",
238
- authentication
239
- }),
240
- (0, arcgis_rest_feature_layer_1.queryFeatures)({
241
- url: `${url}4`,
242
- where: "1=1",
243
- authentication
244
- })
245
- ];
246
- Promise.all(requests).then(responses => {
247
- const [assignmentTypes, assignmentIntegrations] = responses;
248
- properties.workforceInfos = {
249
- assignmentTypeInfos: _getAssignmentTypeInfos(assignmentTypes)
250
- };
251
- _getAssignmentIntegrationInfos(assignmentIntegrations, authentication).then(results => {
252
- properties.workforceInfos["assignmentIntegrationInfos"] = results;
253
- _updateGlobalIdAndAssignmentType(properties.workforceInfos);
254
- resolve(properties);
255
- }, e => reject((0, generalHelpers_1.fail)(e)));
256
- }, e => reject((0, generalHelpers_1.fail)(e)));
257
- });
258
- }
259
- exports.getWorkforceServiceInfo = getWorkforceServiceInfo;
260
- /**
261
- * Wrap global id and assignmenttype values in curly braces
262
- *
263
- * Added for issue #734
264
- *
265
- * This function will update the provided workforceInfos object
266
- *
267
- * @param workforceInfos the object that stores the integration and type info with global ids
268
- * @private
269
- */
270
- function _updateGlobalIdAndAssignmentType(workforceInfos) {
271
- const updateId = (i) => {
272
- /* istanbul ignore else */
273
- if (i["GlobalID"]) {
274
- i["GlobalID"] = `{${i["GlobalID"]}}`;
275
- }
276
- /* istanbul ignore else */
277
- if (i["assignmenttype"]) {
278
- i["assignmenttype"] = `{${i["assignmenttype"]}}`;
279
- }
280
- return i;
281
- };
282
- const assignmentIntegrationInfos = (0, generalHelpers_1.getProp)(workforceInfos, "assignmentIntegrationInfos");
283
- /* istanbul ignore else */
284
- if (assignmentIntegrationInfos && Array.isArray(assignmentIntegrationInfos)) {
285
- (0, generalHelpers_1.setProp)(workforceInfos, "assignmentIntegrationInfos", assignmentIntegrationInfos.map(updateId));
286
- }
287
- const assignmentTypeInfos = (0, generalHelpers_1.getProp)(workforceInfos, "assignmentTypeInfos");
288
- /* istanbul ignore else */
289
- if (assignmentTypeInfos && Array.isArray(assignmentTypeInfos)) {
290
- (0, generalHelpers_1.setProp)(workforceInfos, "assignmentTypeInfos", assignmentTypeInfos.map(updateId));
291
- }
292
- }
293
- exports._updateGlobalIdAndAssignmentType = _updateGlobalIdAndAssignmentType;
294
- //???
295
- function _getAssignmentTypeInfos(assignmentTypes) {
296
- // Assignment Types
297
- const assignmentTypeInfos = [];
298
- const keyAssignmentTypeProps = [
299
- "description",
300
- assignmentTypes.globalIdFieldName
301
- ];
302
- assignmentTypes.features.forEach((f) => {
303
- const info = {};
304
- keyAssignmentTypeProps.forEach(p => {
305
- info[p] = f.attributes[p];
306
- });
307
- assignmentTypeInfos.push(info);
308
- });
309
- return assignmentTypeInfos;
310
- }
311
- exports._getAssignmentTypeInfos = _getAssignmentTypeInfos;
312
- //???
313
- function _getAssignmentIntegrationInfos(assignmentIntegrations, authentication) {
314
- return new Promise((resolve, reject) => {
315
- let requests = [];
316
- let urls = [];
317
- const assignmentIntegrationInfos = [];
318
- const keyAssignmentIntegrationsProps = [
319
- "appid",
320
- assignmentIntegrations.globalIdFieldName,
321
- "prompt",
322
- "urltemplate",
323
- "assignmenttype"
324
- ];
325
- assignmentIntegrations.features.forEach((f) => {
326
- const info = {};
327
- keyAssignmentIntegrationsProps.forEach(p => {
328
- info[p] = f.attributes[p];
329
- /* istanbul ignore else */
330
- if (p === "urltemplate") {
331
- const urlTemplate = f.attributes[p];
332
- const ids = (0, generalHelpers_1.getIDs)(urlTemplate);
333
- info["dependencies"] = ids;
334
- const serviceRequests = urlTest(urlTemplate, authentication);
335
- /* istanbul ignore else */
336
- if (Array.isArray(serviceRequests.requests) &&
337
- serviceRequests.requests.length > 0) {
338
- requests = requests.concat(serviceRequests.requests);
339
- urls = urls.concat(serviceRequests.urls);
340
- }
341
- }
342
- });
343
- assignmentIntegrationInfos.push(info);
344
- });
345
- getUrlDependencies(requests, urls).then(results => {
346
- assignmentIntegrationInfos.forEach(ai => {
347
- _templatizeUrlTemplate(ai, results.urlHash);
348
- });
349
- resolve(assignmentIntegrationInfos);
350
- }, e => reject((0, generalHelpers_1.fail)(e)));
351
- });
352
- }
353
- exports._getAssignmentIntegrationInfos = _getAssignmentIntegrationInfos;
354
- function getUrlDependencies(requests, urls) {
355
- return new Promise((resolve, reject) => {
356
- const dependencies = [];
357
- if (requests.length > 0) {
358
- Promise.all(requests).then(results => {
359
- const urlHash = {};
360
- // Get the serviceItemId for the url
361
- /* istanbul ignore else */
362
- if (Array.isArray(results)) {
363
- results.forEach((result, i) => {
364
- /* istanbul ignore else */
365
- if (result.serviceItemId) {
366
- urlHash[urls[i]] = result.serviceItemId;
367
- /* istanbul ignore else */
368
- if (dependencies.indexOf(result.serviceItemId) === -1) {
369
- dependencies.push(result.serviceItemId);
370
- }
371
- }
372
- });
373
- }
374
- resolve({
375
- dependencies,
376
- urlHash
377
- });
378
- }, e => reject((0, generalHelpers_1.fail)(e)));
379
- }
380
- else {
381
- resolve({
382
- dependencies,
383
- urlHash: {}
384
- });
385
- }
386
- });
387
- }
388
- exports.getUrlDependencies = getUrlDependencies;
389
- /**
390
- * Templatizes values from a urlTemplate
391
- *
392
- * @param item the object that may contain a urlTemplate
393
- * @param urlHash a key value pair of url and itemId
394
- * @private
395
- */
396
- function _templatizeUrlTemplate(item, urlHash) {
397
- // v1 uses urlTemplate
398
- // v2 uses urltemplate
399
- const urlTemplateVar = (0, generalHelpers_1.getProp)(item, "urlTemplate")
400
- ? "urlTemplate"
401
- : "urltemplate";
402
- let urlTemplate = (0, generalHelpers_1.getProp)(item, urlTemplateVar);
403
- /* istanbul ignore else */
404
- if (urlTemplate) {
405
- const ids = (0, generalHelpers_1.getIDs)(urlTemplate);
406
- ids.forEach(id => {
407
- urlTemplate = urlTemplate.replace(id, (0, templatization_1.templatizeTerm)(id, id, ".itemId"));
408
- });
409
- const urls = _getURLs(urlTemplate);
410
- urls.forEach(url => {
411
- const layerId = getLayerId(url);
412
- const replaceValue = getReplaceValue(layerId, ".url");
413
- const id = urlHash[url];
414
- /* istanbul ignore else */
415
- if (Array.isArray(item.dependencies) &&
416
- item.dependencies.indexOf(id) < 0) {
417
- item.dependencies.push(id);
418
- }
419
- urlTemplate = urlTemplate.replace(url, (0, templatization_1.templatizeTerm)(id, id, replaceValue));
420
- });
421
- (0, generalHelpers_1.setProp)(item, urlTemplateVar, urlTemplate);
422
- }
423
- }
424
- exports._templatizeUrlTemplate = _templatizeUrlTemplate;
425
- function getLayerId(url) {
426
- return url.indexOf("FeatureServer/") > -1
427
- ? url.substr(url.lastIndexOf("/") + 1)
428
- : undefined;
429
- }
430
- exports.getLayerId = getLayerId;
431
- function getReplaceValue(layerId, suffix) {
432
- return isNaN(Number.parseInt(layerId, 10))
433
- ? `${suffix}`
434
- : `.layer${layerId}${suffix}`;
435
- }
436
- exports.getReplaceValue = getReplaceValue;
437
- function postProcessWorkforceTemplates(templates) {
438
- const groupUpdates = {};
439
- const _templates = templates.map(t => {
440
- // templatize Workforce Project
441
- t = _templatizeWorkforceProject(t, groupUpdates);
442
- // templatize Workforce Dispatcher
443
- t = _templatizeWorkforceDispatcherOrWorker(t, "Workforce Dispatcher");
444
- // templatize Workforce Worker
445
- t = _templatizeWorkforceDispatcherOrWorker(t, "Workforce Worker");
446
- return t;
447
- });
448
- return _templates.map(t => {
449
- if (groupUpdates[t.itemId]) {
450
- t.dependencies = t.dependencies.concat(groupUpdates[t.itemId]);
451
- }
452
- return t;
453
- });
454
- }
455
- exports.postProcessWorkforceTemplates = postProcessWorkforceTemplates;
456
- //???
457
- function _templatizeWorkforceProject(t, groupUpdates) {
458
- /* istanbul ignore else */
459
- if (isWorkforceProject(t)) {
460
- const properties = t.item.properties || {};
461
- const keyProperties = getKeyWorkforceProperties(2);
462
- const groupId = properties["workforceProjectGroupId"];
463
- const shuffleIds = [];
464
- Object.keys(properties).forEach((p) => {
465
- /* istanbul ignore else */
466
- if (keyProperties.indexOf(p) > -1) {
467
- const id = properties[p];
468
- /* istanbul ignore else */
469
- if (id !== groupId) {
470
- shuffleIds.push(id);
471
- }
472
- t.item.properties[p] = (0, templatization_1.templatizeTerm)(properties[p], properties[p], ".itemId");
473
- }
474
- });
475
- // update the dependencies
476
- t.dependencies = t.dependencies.filter((d) => d !== groupId && shuffleIds.indexOf(d) < 0);
477
- // shuffle and cleanup
478
- const workforceInfos = (0, generalHelpers_1.getProp)(t, "properties.workforceInfos");
479
- /* istanbul ignore else */
480
- if (workforceInfos) {
481
- Object.keys(workforceInfos).forEach(k => {
482
- workforceInfos[k].forEach((wInfo) => {
483
- /* istanbul ignore else */
484
- if (wInfo.dependencies) {
485
- wInfo.dependencies.forEach((id) => {
486
- /* istanbul ignore else */
487
- if (shuffleIds.indexOf(id) < 0) {
488
- shuffleIds.push(id);
489
- }
490
- const depIndex = t.dependencies.indexOf(id);
491
- /* istanbul ignore else */
492
- if (depIndex > -1) {
493
- t.dependencies.splice(depIndex, 1);
494
- }
495
- });
496
- delete wInfo.dependencies;
497
- }
498
- });
499
- });
500
- }
501
- // move the dependencies to the group
502
- groupUpdates[groupId] = shuffleIds;
503
- }
504
- return t;
505
- }
506
- exports._templatizeWorkforceProject = _templatizeWorkforceProject;
507
- //???
508
- function _templatizeWorkforceDispatcherOrWorker(t, type) {
509
- /* istanbul ignore else */
510
- if ((t.item.typeKeywords || []).indexOf(type) > -1) {
511
- const properties = t.item.properties || {};
512
- const fsId = properties["workforceFeatureServiceId"];
513
- /* istanbul ignore else */
514
- if (fsId) {
515
- t.item.properties["workforceFeatureServiceId"] = (0, templatization_1.templatizeTerm)(fsId, fsId, ".itemId");
516
- }
517
- }
518
- return t;
519
- }
520
- exports._templatizeWorkforceDispatcherOrWorker = _templatizeWorkforceDispatcherOrWorker;
521
- // Helpers
522
- function isWorkforceProject(itemTemplate) {
523
- return ((itemTemplate.item.typeKeywords || []).indexOf("Workforce Project") > -1);
524
- }
525
- exports.isWorkforceProject = isWorkforceProject;
526
- function getKeyWorkforceProperties(version) {
527
- return version === 1
528
- ? [
529
- "groupId",
530
- "workerWebMapId",
531
- "dispatcherWebMapId",
532
- "dispatchers",
533
- "assignments",
534
- "workers",
535
- "tracks"
536
- ]
537
- : [
538
- "workforceDispatcherMapId",
539
- "workforceProjectGroupId",
540
- "workforceWorkerMapId"
541
- ];
542
- }
543
- exports.getKeyWorkforceProperties = getKeyWorkforceProperties;
544
- /**
545
- * Test the provided value for any urls and submit a request to obtain the service item id for the url
546
- *
547
- * @param v a string value to test for urls
548
- * @param authentication credentials for the requests
549
- * @returns an object with any pending requests and the urls that requests were made to
550
- */
551
- function urlTest(v, authentication) {
552
- const urls = _getURLs(v);
553
- const requests = [];
554
- urls.forEach(url => {
555
- const options = {
556
- f: "json",
557
- authentication: authentication
558
- };
559
- requests.push((0, restHelpers_1.rest_request)(url, options));
560
- });
561
- return {
562
- requests: requests,
563
- urls: urls
564
- };
565
- }
566
- exports.urlTest = urlTest;
567
- //???
568
- function _getURLs(v) {
569
- return (0, generalHelpers_1.regExTest)(v, /=(http.*?FeatureServer.*?(?=&|$))/gi).map(_v => _v.replace("=", ""));
570
- }
571
- exports._getURLs = _getURLs;
572
- //#region Deploy Process ---------------------------------------------------------------------------------------//
573
- /**
574
- * Gets the current user and updates the dispatchers service
575
- *
576
- * @param newlyCreatedItem Item to be created; n.b.: this item is modified
577
- * @param destinationAuthentication The session used to create the new item(s)
578
- * @returns A promise that will resolve with \{ "success" === true || false \}
579
- */
580
- function fineTuneCreatedWorkforceItem(newlyCreatedItem, destinationAuthentication, url, templateDictionary) {
581
- return new Promise((resolve, reject) => {
582
- destinationAuthentication.getUser().then(user => {
583
- // update url with slash if necessary
584
- url = _updateUrl(url);
585
- // Dispatchers...index 2 for workforce v2
586
- // for v1 we need tp fetch from dispatchers for v2 we use the items url
587
- const dispatchers = (0, generalHelpers_1.getProp)(newlyCreatedItem, "data.dispatchers");
588
- // add current user as dispatcher
589
- _updateDispatchers(dispatchers && dispatchers.url ? dispatchers.url : `${url}2`, user.username || "", user.fullName || "", destinationAuthentication, templateDictionary.isPortal).then(results => {
590
- // for workforce v2 we storce the key details from the workforce service as workforceInfos
591
- // now we need to detemplatize it and update the workforce service
592
- let workforceInfos = (0, generalHelpers_1.getProp)(newlyCreatedItem, "properties.workforceInfos");
593
- if (workforceInfos && url) {
594
- workforceInfos = (0, templatization_1.replaceInTemplate)(workforceInfos, templateDictionary);
595
- _getFields(url, [2, 3, 4], destinationAuthentication).then(fields => {
596
- // Assignment Types...index 3
597
- const assignmentTypeUrl = `${url}3`;
598
- const assignmentTypeInfos = workforceInfos.assignmentTypeInfos;
599
- const assignmentTypeFeatures = _getAddFeatures(assignmentTypeInfos, fields[assignmentTypeUrl]);
600
- const assignmentTypePromise = _applyEdits(assignmentTypeUrl, assignmentTypeFeatures, destinationAuthentication, true);
601
- // Assignment Integrations...index 4
602
- const assignmentIntegrationUrl = `${url}4`;
603
- const assignmentIntegrationInfos = workforceInfos.assignmentIntegrationInfos;
604
- const assignmentIntegrationFeatures = _getAddFeatures(assignmentIntegrationInfos, fields[assignmentIntegrationUrl]);
605
- const assignmentIntegrationPromise = _applyEdits(assignmentIntegrationUrl, assignmentIntegrationFeatures, destinationAuthentication, true);
606
- Promise.all([
607
- assignmentTypePromise,
608
- assignmentIntegrationPromise
609
- ]).then(resolve, reject);
610
- }, e => reject((0, generalHelpers_1.fail)(e)));
611
- }
612
- else {
613
- resolve({ success: results });
614
- }
615
- }, e => reject((0, generalHelpers_1.fail)(e)));
616
- }, e => reject((0, generalHelpers_1.fail)(e)));
617
- });
618
- }
619
- exports.fineTuneCreatedWorkforceItem = fineTuneCreatedWorkforceItem;
620
- //???
621
- function _getFields(url, ids, authentication) {
622
- return new Promise((resolve, reject) => {
623
- const options = {
624
- f: "json",
625
- fields: "*",
626
- authentication: authentication
627
- };
628
- url = _updateUrl(url);
629
- const promises = [];
630
- ids.forEach(id => {
631
- promises.push((0, restHelpers_1.rest_request)(`${url}${id}`, options));
632
- });
633
- Promise.all(promises).then(results => {
634
- const finalResult = {};
635
- results.forEach(r => {
636
- finalResult[`${url}${r.id}`] = r.fields.map((f) => f.name);
637
- });
638
- resolve(finalResult);
639
- }, e => reject((0, generalHelpers_1.fail)(e)));
640
- });
641
- }
642
- exports._getFields = _getFields;
643
- //???
644
- function _updateUrl(url) {
645
- url += url.endsWith("/") ? "" : "/";
646
- return url;
647
- }
648
- exports._updateUrl = _updateUrl;
649
- //???
650
- function _getAddFeatures(updateInfos, fields) {
651
- const features = [];
652
- updateInfos.forEach((update) => {
653
- const f = {};
654
- Object.keys(update).forEach(k => {
655
- const fieldName = _getField(k, fields);
656
- f[fieldName] = update[k];
657
- });
658
- features.push({ attributes: f });
659
- });
660
- return features;
661
- }
662
- exports._getAddFeatures = _getAddFeatures;
663
- //???
664
- function _getField(name, fields) {
665
- return fields.filter(f => f.toLowerCase() === name.toLowerCase())[0];
666
- }
667
- exports._getField = _getField;
668
- /**
669
- * Updates the dispatchers service to include the current user as a dispatcher
670
- *
671
- * @param dispatchers The dispatchers object from the workforce items data
672
- * @param name Current users name
673
- * @param fullName Current users full name
674
- * @param destinationAuthentication The session used to create the new item(s)
675
- * @returns A promise that will resolve with true || false
676
- * @private
677
- */
678
- function _updateDispatchers(url, name, fullName, authentication, isPortal) {
679
- return new Promise((resolve, reject) => {
680
- if (url) {
681
- const fieldName = isPortal ? "userid" : "userId";
682
- (0, arcgis_rest_feature_layer_1.queryFeatures)({
683
- url,
684
- where: `${fieldName} = '${name}'`,
685
- authentication
686
- }).then((results) => {
687
- if (results && results.features) {
688
- if (results.features.length === 0) {
689
- const features = [
690
- {
691
- attributes: {
692
- name: fullName
693
- }
694
- }
695
- ];
696
- features[0].attributes[fieldName] = name;
697
- _applyEdits(url, features, authentication).then(resolve, reject);
698
- }
699
- else {
700
- resolve(true);
701
- }
702
- }
703
- else {
704
- resolve(false);
705
- }
706
- }, e => reject((0, generalHelpers_1.fail)(e)));
707
- }
708
- else {
709
- resolve(false);
710
- }
711
- });
712
- }
713
- exports._updateDispatchers = _updateDispatchers;
714
- //???
715
- function _applyEdits(url, adds, authentication, useGlobalIds = false // only set when contains a globalid
716
- ) {
717
- return new Promise((resolve, reject) => {
718
- if (adds.length > 0) {
719
- (0, arcgis_rest_feature_layer_1.applyEdits)({
720
- url,
721
- adds,
722
- useGlobalIds,
723
- authentication
724
- }).then(addResults => {
725
- if (addResults && addResults.addResults) {
726
- resolve(true);
727
- }
728
- else {
729
- reject((0, generalHelpers_1.fail)({
730
- success: false,
731
- message: "Failed to add dispatch record."
732
- }));
733
- }
734
- }, e => reject((0, generalHelpers_1.fail)({
735
- success: false,
736
- message: "Failed to add dispatch record.",
737
- error: e
738
- })));
739
- }
740
- else {
741
- resolve(true);
742
- }
743
- });
744
- }
745
- exports._applyEdits = _applyEdits;
746
- //#endregion
747
- //# sourceMappingURL=workforceHelpers.js.map