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