@esri/solution-common 4.1.2 → 5.0.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/cjs/completeItem.d.ts +29 -29
- package/dist/cjs/completeItem.js +81 -81
- package/dist/cjs/create-hub-request-options.d.ts +29 -29
- package/dist/cjs/create-hub-request-options.js +63 -63
- package/dist/cjs/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
- package/dist/cjs/deleteHelpers/deleteEmptyGroups.js +41 -41
- package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
- package/dist/cjs/deleteHelpers/deleteGroupIfEmpty.js +96 -96
- package/dist/cjs/deleteHelpers/deleteSolutionContents.d.ts +38 -38
- package/dist/cjs/deleteHelpers/deleteSolutionContents.js +129 -129
- package/dist/cjs/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
- package/dist/cjs/deleteHelpers/deleteSolutionFolder.js +78 -78
- package/dist/cjs/deleteHelpers/deleteSolutionItem.d.ts +30 -30
- package/dist/cjs/deleteHelpers/deleteSolutionItem.js +53 -53
- package/dist/cjs/deleteHelpers/index.d.ts +22 -22
- package/dist/cjs/deleteHelpers/index.js +25 -25
- package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
- package/dist/cjs/deleteHelpers/reconstructBuildOrderIds.js +33 -33
- package/dist/cjs/deleteHelpers/removeItems.d.ts +34 -34
- package/dist/cjs/deleteHelpers/removeItems.js +111 -111
- package/dist/cjs/deleteHelpers/reportProgress.d.ts +27 -27
- package/dist/cjs/deleteHelpers/reportProgress.js +45 -45
- package/dist/cjs/deleteSolution.d.ts +55 -55
- package/dist/cjs/deleteSolution.js +106 -106
- package/dist/cjs/dependencies.d.ts +26 -26
- package/dist/cjs/dependencies.js +170 -170
- package/dist/cjs/featureServiceHelpers.d.ts +791 -791
- package/dist/cjs/featureServiceHelpers.js +2420 -2420
- package/dist/cjs/generalHelpers.d.ts +392 -385
- package/dist/cjs/generalHelpers.js +857 -854
- package/dist/cjs/generalHelpers.js.map +1 -1
- package/dist/cjs/get-subscription-info.d.ts +27 -27
- package/dist/cjs/get-subscription-info.js +38 -38
- package/dist/cjs/getDeletableSolutionInfo.d.ts +29 -29
- package/dist/cjs/getDeletableSolutionInfo.js +52 -52
- package/dist/cjs/getItemTypeAbbrev.d.ts +19 -19
- package/dist/cjs/getItemTypeAbbrev.js +184 -184
- package/dist/cjs/getSolutionSummary.d.ts +27 -27
- package/dist/cjs/getSolutionSummary.js +100 -100
- package/dist/cjs/index.d.ts +43 -44
- package/dist/cjs/index.js +46 -47
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces.d.ts +1334 -1334
- package/dist/cjs/interfaces.js +74 -74
- package/dist/cjs/interfaces.js.map +1 -1
- package/dist/cjs/libConnectors.d.ts +73 -73
- package/dist/cjs/libConnectors.js +114 -114
- package/dist/cjs/migrations/apply-schema.d.ts +24 -24
- package/dist/cjs/migrations/apply-schema.js +35 -35
- package/dist/cjs/migrations/is-legacy-solution.d.ts +24 -24
- package/dist/cjs/migrations/is-legacy-solution.js +39 -39
- package/dist/cjs/migrations/upgrade-three-dot-one.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-three-dot-one.js +48 -48
- package/dist/cjs/migrations/upgrade-three-dot-zero.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-three-dot-zero.js +42 -42
- package/dist/cjs/migrations/upgrade-two-dot-five.d.ts +24 -24
- package/dist/cjs/migrations/upgrade-two-dot-five.js +72 -72
- package/dist/cjs/migrations/upgrade-two-dot-four.d.ts +24 -24
- package/dist/cjs/migrations/upgrade-two-dot-four.js +71 -71
- package/dist/cjs/migrations/upgrade-two-dot-one.d.ts +7 -7
- package/dist/cjs/migrations/upgrade-two-dot-one.js +38 -38
- package/dist/cjs/migrations/upgrade-two-dot-seven.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-seven.js +57 -57
- package/dist/cjs/migrations/upgrade-two-dot-six.d.ts +27 -27
- package/dist/cjs/migrations/upgrade-two-dot-six.js +60 -60
- package/dist/cjs/migrations/upgrade-two-dot-three.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-three.js +54 -54
- package/dist/cjs/migrations/upgrade-two-dot-two.d.ts +23 -23
- package/dist/cjs/migrations/upgrade-two-dot-two.js +57 -57
- package/dist/cjs/migrations/upgrade-two-dot-zero.d.ts +44 -44
- package/dist/cjs/migrations/upgrade-two-dot-zero.js +94 -94
- package/dist/cjs/migrator.d.ts +25 -25
- package/dist/cjs/migrator.js +76 -76
- package/dist/cjs/resourceHelpers.d.ts +191 -191
- package/dist/cjs/resourceHelpers.js +383 -390
- package/dist/cjs/resourceHelpers.js.map +1 -1
- package/dist/cjs/resources/add-resource-from-blob.d.ts +26 -26
- package/dist/cjs/resources/add-resource-from-blob.js +51 -51
- package/dist/cjs/resources/addMetadataFromBlob.d.ts +25 -25
- package/dist/cjs/resources/addMetadataFromBlob.js +42 -42
- package/dist/cjs/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
- package/dist/cjs/resources/convert-item-resource-to-storage-resource.js +69 -69
- package/dist/cjs/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
- package/dist/cjs/resources/convert-storage-resource-to-item-resource.js +69 -69
- package/dist/cjs/resources/copyAssociatedFiles.d.ts +67 -67
- package/dist/cjs/resources/copyAssociatedFiles.js +301 -301
- package/dist/cjs/resources/copyDataIntoItem.d.ts +33 -33
- package/dist/cjs/resources/copyDataIntoItem.js +61 -62
- package/dist/cjs/resources/copyDataIntoItem.js.map +1 -1
- package/dist/cjs/resources/copyMetadataIntoItem.d.ts +26 -26
- package/dist/cjs/resources/copyMetadataIntoItem.js +45 -45
- package/dist/cjs/resources/copyResourceIntoZip.d.ts +33 -33
- package/dist/cjs/resources/copyResourceIntoZip.js +77 -77
- package/dist/cjs/resources/copyZipIntoItem.d.ts +25 -25
- package/dist/cjs/resources/copyZipIntoItem.js +53 -53
- package/dist/cjs/resources/createCopyResults.d.ts +25 -25
- package/dist/cjs/resources/createCopyResults.js +35 -35
- package/dist/cjs/resources/get-blob.d.ts +26 -26
- package/dist/cjs/resources/get-blob.js +26 -26
- package/dist/cjs/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
- package/dist/cjs/resources/getItemResourcesFilesFromPaths.js +48 -48
- package/dist/cjs/resources/getItemResourcesPaths.d.ts +26 -26
- package/dist/cjs/resources/getItemResourcesPaths.js +72 -72
- package/dist/cjs/resources/index.d.ts +29 -29
- package/dist/cjs/resources/index.js +32 -32
- package/dist/cjs/resources/solution-resource.d.ts +35 -35
- package/dist/cjs/resources/solution-resource.js +30 -30
- package/dist/cjs/resources/solution-resource.js.map +1 -1
- package/dist/cjs/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
- package/dist/cjs/resources/transform-resource-paths-to-solution-resources.js +145 -145
- package/dist/cjs/restHelpers.d.ts +586 -585
- package/dist/cjs/restHelpers.js +1888 -1883
- package/dist/cjs/restHelpers.js.map +1 -1
- package/dist/cjs/restHelpersGet.d.ts +288 -288
- package/dist/cjs/restHelpersGet.js +803 -803
- package/dist/cjs/sharing/index.d.ts +16 -16
- package/dist/cjs/sharing/index.js +19 -19
- package/dist/cjs/sharing/share-item-to-groups.d.ts +26 -26
- package/dist/cjs/sharing/share-item-to-groups.js +43 -43
- package/dist/cjs/templatization.d.ts +139 -139
- package/dist/cjs/templatization.js +313 -313
- package/dist/cjs/trackingHelpers.d.ts +116 -116
- package/dist/cjs/trackingHelpers.js +216 -216
- package/dist/cjs/velocityHelpers.d.ts +57 -57
- package/dist/cjs/velocityHelpers.js +134 -134
- package/dist/cjs/workforceHelpers.d.ts +115 -115
- package/dist/cjs/workforceHelpers.js +746 -746
- package/dist/cjs/workforceHelpers.js.map +1 -1
- package/dist/esm/completeItem.d.ts +29 -29
- package/dist/esm/completeItem.js +76 -76
- package/dist/esm/create-hub-request-options.d.ts +29 -29
- package/dist/esm/create-hub-request-options.js +59 -59
- package/dist/esm/deleteHelpers/deleteEmptyGroups.d.ts +24 -24
- package/dist/esm/deleteHelpers/deleteEmptyGroups.js +37 -37
- package/dist/esm/deleteHelpers/deleteGroupIfEmpty.d.ts +27 -27
- package/dist/esm/deleteHelpers/deleteGroupIfEmpty.js +91 -91
- package/dist/esm/deleteHelpers/deleteSolutionContents.d.ts +38 -38
- package/dist/esm/deleteHelpers/deleteSolutionContents.js +124 -124
- package/dist/esm/deleteHelpers/deleteSolutionFolder.d.ts +29 -29
- package/dist/esm/deleteHelpers/deleteSolutionFolder.js +73 -73
- package/dist/esm/deleteHelpers/deleteSolutionItem.d.ts +30 -30
- package/dist/esm/deleteHelpers/deleteSolutionItem.js +48 -48
- package/dist/esm/deleteHelpers/index.d.ts +22 -22
- package/dist/esm/deleteHelpers/index.js +22 -22
- package/dist/esm/deleteHelpers/reconstructBuildOrderIds.d.ts +27 -27
- package/dist/esm/deleteHelpers/reconstructBuildOrderIds.js +28 -28
- package/dist/esm/deleteHelpers/removeItems.d.ts +34 -34
- package/dist/esm/deleteHelpers/removeItems.js +106 -106
- package/dist/esm/deleteHelpers/reportProgress.d.ts +27 -27
- package/dist/esm/deleteHelpers/reportProgress.js +41 -41
- package/dist/esm/deleteSolution.d.ts +55 -55
- package/dist/esm/deleteSolution.js +100 -100
- package/dist/esm/dependencies.d.ts +26 -26
- package/dist/esm/dependencies.js +166 -166
- package/dist/esm/featureServiceHelpers.d.ts +791 -791
- package/dist/esm/featureServiceHelpers.js +2336 -2336
- package/dist/esm/generalHelpers.d.ts +392 -385
- package/dist/esm/generalHelpers.js +810 -808
- package/dist/esm/generalHelpers.js.map +1 -1
- package/dist/esm/get-subscription-info.d.ts +27 -27
- package/dist/esm/get-subscription-info.js +34 -34
- package/dist/esm/getDeletableSolutionInfo.d.ts +29 -29
- package/dist/esm/getDeletableSolutionInfo.js +47 -47
- package/dist/esm/getItemTypeAbbrev.d.ts +19 -19
- package/dist/esm/getItemTypeAbbrev.js +180 -180
- package/dist/esm/getSolutionSummary.d.ts +27 -27
- package/dist/esm/getSolutionSummary.js +95 -95
- package/dist/esm/index.d.ts +43 -44
- package/dist/esm/index.js +43 -44
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces.d.ts +1334 -1334
- package/dist/esm/interfaces.js +70 -70
- package/dist/esm/libConnectors.d.ts +73 -73
- package/dist/esm/libConnectors.js +104 -104
- package/dist/esm/migrations/apply-schema.d.ts +24 -24
- package/dist/esm/migrations/apply-schema.js +31 -31
- package/dist/esm/migrations/is-legacy-solution.d.ts +24 -24
- package/dist/esm/migrations/is-legacy-solution.js +35 -35
- package/dist/esm/migrations/upgrade-three-dot-one.d.ts +27 -27
- package/dist/esm/migrations/upgrade-three-dot-one.js +44 -44
- package/dist/esm/migrations/upgrade-three-dot-zero.d.ts +27 -27
- package/dist/esm/migrations/upgrade-three-dot-zero.js +38 -38
- package/dist/esm/migrations/upgrade-two-dot-five.d.ts +24 -24
- package/dist/esm/migrations/upgrade-two-dot-five.js +68 -68
- package/dist/esm/migrations/upgrade-two-dot-four.d.ts +24 -24
- package/dist/esm/migrations/upgrade-two-dot-four.js +67 -67
- package/dist/esm/migrations/upgrade-two-dot-one.d.ts +7 -7
- package/dist/esm/migrations/upgrade-two-dot-one.js +34 -34
- package/dist/esm/migrations/upgrade-two-dot-seven.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-seven.js +53 -53
- package/dist/esm/migrations/upgrade-two-dot-six.d.ts +27 -27
- package/dist/esm/migrations/upgrade-two-dot-six.js +56 -56
- package/dist/esm/migrations/upgrade-two-dot-three.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-three.js +50 -50
- package/dist/esm/migrations/upgrade-two-dot-two.d.ts +23 -23
- package/dist/esm/migrations/upgrade-two-dot-two.js +53 -53
- package/dist/esm/migrations/upgrade-two-dot-zero.d.ts +44 -44
- package/dist/esm/migrations/upgrade-two-dot-zero.js +87 -87
- package/dist/esm/migrator.d.ts +25 -25
- package/dist/esm/migrator.js +72 -72
- package/dist/esm/resourceHelpers.d.ts +191 -191
- package/dist/esm/resourceHelpers.js +364 -371
- package/dist/esm/resourceHelpers.js.map +1 -1
- package/dist/esm/resources/add-resource-from-blob.d.ts +26 -26
- package/dist/esm/resources/add-resource-from-blob.js +47 -47
- package/dist/esm/resources/addMetadataFromBlob.d.ts +25 -25
- package/dist/esm/resources/addMetadataFromBlob.js +38 -38
- package/dist/esm/resources/convert-item-resource-to-storage-resource.d.ts +32 -32
- package/dist/esm/resources/convert-item-resource-to-storage-resource.js +65 -65
- package/dist/esm/resources/convert-storage-resource-to-item-resource.d.ts +29 -29
- package/dist/esm/resources/convert-storage-resource-to-item-resource.js +65 -65
- package/dist/esm/resources/copyAssociatedFiles.d.ts +67 -67
- package/dist/esm/resources/copyAssociatedFiles.js +293 -293
- package/dist/esm/resources/copyDataIntoItem.d.ts +33 -33
- package/dist/esm/resources/copyDataIntoItem.js +56 -57
- package/dist/esm/resources/copyDataIntoItem.js.map +1 -1
- package/dist/esm/resources/copyMetadataIntoItem.d.ts +26 -26
- package/dist/esm/resources/copyMetadataIntoItem.js +41 -41
- package/dist/esm/resources/copyResourceIntoZip.d.ts +33 -33
- package/dist/esm/resources/copyResourceIntoZip.js +72 -72
- package/dist/esm/resources/copyZipIntoItem.d.ts +25 -25
- package/dist/esm/resources/copyZipIntoItem.js +49 -49
- package/dist/esm/resources/createCopyResults.d.ts +25 -25
- package/dist/esm/resources/createCopyResults.js +31 -31
- package/dist/esm/resources/get-blob.d.ts +26 -26
- package/dist/esm/resources/get-blob.js +22 -22
- package/dist/esm/resources/getItemResourcesFilesFromPaths.d.ts +24 -24
- package/dist/esm/resources/getItemResourcesFilesFromPaths.js +44 -44
- package/dist/esm/resources/getItemResourcesPaths.d.ts +26 -26
- package/dist/esm/resources/getItemResourcesPaths.js +68 -68
- package/dist/esm/resources/index.d.ts +29 -29
- package/dist/esm/resources/index.js +29 -29
- package/dist/esm/resources/solution-resource.d.ts +35 -35
- package/dist/esm/resources/solution-resource.js +27 -27
- package/dist/esm/resources/transform-resource-paths-to-solution-resources.d.ts +56 -56
- package/dist/esm/resources/transform-resource-paths-to-solution-resources.js +137 -137
- package/dist/esm/restHelpers.d.ts +586 -585
- package/dist/esm/restHelpers.js +1827 -1823
- package/dist/esm/restHelpers.js.map +1 -1
- package/dist/esm/restHelpersGet.d.ts +288 -288
- package/dist/esm/restHelpersGet.js +763 -763
- package/dist/esm/sharing/index.d.ts +16 -16
- package/dist/esm/sharing/index.js +16 -16
- package/dist/esm/sharing/share-item-to-groups.d.ts +26 -26
- package/dist/esm/sharing/share-item-to-groups.js +39 -39
- package/dist/esm/templatization.d.ts +139 -139
- package/dist/esm/templatization.js +293 -293
- package/dist/esm/trackingHelpers.d.ts +116 -116
- package/dist/esm/trackingHelpers.js +204 -204
- package/dist/esm/velocityHelpers.d.ts +57 -57
- package/dist/esm/velocityHelpers.js +128 -128
- package/dist/esm/workforceHelpers.d.ts +115 -115
- package/dist/esm/workforceHelpers.js +717 -717
- package/dist/esm/workforceHelpers.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/polyfills.d.ts +0 -40
- package/dist/cjs/polyfills.js +0 -98
- package/dist/cjs/polyfills.js.map +0 -1
- package/dist/esm/polyfills.d.ts +0 -40
- package/dist/esm/polyfills.js +0 -93
- package/dist/esm/polyfills.js.map +0 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2021 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @module deleteGroupIfEmpty
|
|
18
|
-
*/
|
|
19
|
-
import { UserSession } from "../interfaces";
|
|
20
|
-
/**
|
|
21
|
-
* Deletes a group if it's empty and belongs to the specified user.
|
|
22
|
-
*
|
|
23
|
-
* @param groupId Id of the group to be deleted
|
|
24
|
-
* @param authentication Credentials for the request
|
|
25
|
-
* @returns Promise indicating if group was deleted
|
|
26
|
-
*/
|
|
27
|
-
export declare function deleteGroupIfEmpty(groupId: string, authentication: UserSession): Promise<boolean>;
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2021 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @module deleteGroupIfEmpty
|
|
18
|
+
*/
|
|
19
|
+
import { UserSession } from "../interfaces";
|
|
20
|
+
/**
|
|
21
|
+
* Deletes a group if it's empty and belongs to the specified user.
|
|
22
|
+
*
|
|
23
|
+
* @param groupId Id of the group to be deleted
|
|
24
|
+
* @param authentication Credentials for the request
|
|
25
|
+
* @returns Promise indicating if group was deleted
|
|
26
|
+
*/
|
|
27
|
+
export declare function deleteGroupIfEmpty(groupId: string, authentication: UserSession): Promise<boolean>;
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2021 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import * as portal from "@esri/arcgis-rest-portal";
|
|
17
|
-
// ------------------------------------------------------------------------------------------------------------------ //
|
|
18
|
-
/**
|
|
19
|
-
* Deletes a group if it's empty and belongs to the specified user.
|
|
20
|
-
*
|
|
21
|
-
* @param groupId Id of the group to be deleted
|
|
22
|
-
* @param authentication Credentials for the request
|
|
23
|
-
* @returns Promise indicating if group was deleted
|
|
24
|
-
*/
|
|
25
|
-
export function deleteGroupIfEmpty(groupId, authentication) {
|
|
26
|
-
let username;
|
|
27
|
-
let isGroupProtected;
|
|
28
|
-
// Get the owner tied to the authentication
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
30
|
-
return authentication
|
|
31
|
-
.getUsername()
|
|
32
|
-
.then(response => {
|
|
33
|
-
username = response;
|
|
34
|
-
// We need to know the owner and protection status of the group
|
|
35
|
-
return portal.getGroup(groupId, { authentication });
|
|
36
|
-
})
|
|
37
|
-
.then((group) => {
|
|
38
|
-
if (group.owner !== username) {
|
|
39
|
-
return Promise.resolve(null); // don't delete a group we don't own
|
|
40
|
-
}
|
|
41
|
-
isGroupProtected = group.protected; // do we need to unprotect before deleting?
|
|
42
|
-
// Get the number of items in the group
|
|
43
|
-
const groupContentOptions = {
|
|
44
|
-
paging: {
|
|
45
|
-
num: 1 // only need 1 item to show that group is not empty
|
|
46
|
-
},
|
|
47
|
-
authentication
|
|
48
|
-
};
|
|
49
|
-
return portal.getGroupContent(groupId, groupContentOptions);
|
|
50
|
-
})
|
|
51
|
-
.then((groupContent) => {
|
|
52
|
-
// should be IGroupContentResult; see https://github.com/Esri/arcgis-rest-js/pull/858/files
|
|
53
|
-
// If groupContent is null, then we don't own the group; if the group is not empty, then we can't delete it
|
|
54
|
-
if (!groupContent || groupContent.total > 0) {
|
|
55
|
-
return Promise.resolve({ success: false }); // don't delete a group that's not empty
|
|
56
|
-
}
|
|
57
|
-
// We're going ahead with deletion; first unprotect it if necessary
|
|
58
|
-
if (isGroupProtected) {
|
|
59
|
-
const groupOptions = {
|
|
60
|
-
id: groupId,
|
|
61
|
-
authentication
|
|
62
|
-
};
|
|
63
|
-
return portal.unprotectGroup(groupOptions);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return Promise.resolve({ success: true });
|
|
67
|
-
}
|
|
68
|
-
})
|
|
69
|
-
.then(response => {
|
|
70
|
-
if (response.success) {
|
|
71
|
-
// All is good so far: we own the group, it's empty, and it's unprotected; proceed with deletion
|
|
72
|
-
const groupOptions = {
|
|
73
|
-
id: groupId,
|
|
74
|
-
authentication
|
|
75
|
-
};
|
|
76
|
-
return portal.removeGroup(groupOptions);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
// We should not delete the group
|
|
80
|
-
return Promise.resolve({ success: false });
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
.then((response) => {
|
|
84
|
-
// Return a simple response
|
|
85
|
-
return Promise.resolve(response.success);
|
|
86
|
-
})
|
|
87
|
-
.catch(() => {
|
|
88
|
-
// In case getGroup or getGroupContent fails
|
|
89
|
-
return Promise.resolve(false);
|
|
90
|
-
});
|
|
91
|
-
}
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2021 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import * as portal from "@esri/arcgis-rest-portal";
|
|
17
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
18
|
+
/**
|
|
19
|
+
* Deletes a group if it's empty and belongs to the specified user.
|
|
20
|
+
*
|
|
21
|
+
* @param groupId Id of the group to be deleted
|
|
22
|
+
* @param authentication Credentials for the request
|
|
23
|
+
* @returns Promise indicating if group was deleted
|
|
24
|
+
*/
|
|
25
|
+
export function deleteGroupIfEmpty(groupId, authentication) {
|
|
26
|
+
let username;
|
|
27
|
+
let isGroupProtected;
|
|
28
|
+
// Get the owner tied to the authentication
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
30
|
+
return authentication
|
|
31
|
+
.getUsername()
|
|
32
|
+
.then(response => {
|
|
33
|
+
username = response;
|
|
34
|
+
// We need to know the owner and protection status of the group
|
|
35
|
+
return portal.getGroup(groupId, { authentication });
|
|
36
|
+
})
|
|
37
|
+
.then((group) => {
|
|
38
|
+
if (group.owner !== username) {
|
|
39
|
+
return Promise.resolve(null); // don't delete a group we don't own
|
|
40
|
+
}
|
|
41
|
+
isGroupProtected = group.protected; // do we need to unprotect before deleting?
|
|
42
|
+
// Get the number of items in the group
|
|
43
|
+
const groupContentOptions = {
|
|
44
|
+
paging: {
|
|
45
|
+
num: 1 // only need 1 item to show that group is not empty
|
|
46
|
+
},
|
|
47
|
+
authentication
|
|
48
|
+
};
|
|
49
|
+
return portal.getGroupContent(groupId, groupContentOptions);
|
|
50
|
+
})
|
|
51
|
+
.then((groupContent) => {
|
|
52
|
+
// should be IGroupContentResult; see https://github.com/Esri/arcgis-rest-js/pull/858/files
|
|
53
|
+
// If groupContent is null, then we don't own the group; if the group is not empty, then we can't delete it
|
|
54
|
+
if (!groupContent || groupContent.total > 0) {
|
|
55
|
+
return Promise.resolve({ success: false }); // don't delete a group that's not empty
|
|
56
|
+
}
|
|
57
|
+
// We're going ahead with deletion; first unprotect it if necessary
|
|
58
|
+
if (isGroupProtected) {
|
|
59
|
+
const groupOptions = {
|
|
60
|
+
id: groupId,
|
|
61
|
+
authentication
|
|
62
|
+
};
|
|
63
|
+
return portal.unprotectGroup(groupOptions);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return Promise.resolve({ success: true });
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
.then(response => {
|
|
70
|
+
if (response.success) {
|
|
71
|
+
// All is good so far: we own the group, it's empty, and it's unprotected; proceed with deletion
|
|
72
|
+
const groupOptions = {
|
|
73
|
+
id: groupId,
|
|
74
|
+
authentication
|
|
75
|
+
};
|
|
76
|
+
return portal.removeGroup(groupOptions);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// We should not delete the group
|
|
80
|
+
return Promise.resolve({ success: false });
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
.then((response) => {
|
|
84
|
+
// Return a simple response
|
|
85
|
+
return Promise.resolve(response.success);
|
|
86
|
+
})
|
|
87
|
+
.catch(() => {
|
|
88
|
+
// In case getGroup or getGroupContent fails
|
|
89
|
+
return Promise.resolve(false);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
92
|
//# sourceMappingURL=deleteGroupIfEmpty.js.map
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2021 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Provides a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
-
* as part of that deployment.
|
|
19
|
-
*
|
|
20
|
-
* @module deleteSolution
|
|
21
|
-
*/
|
|
22
|
-
import { IDeleteSolutionOptions, ISolutionPrecis, UserSession } from "../interfaces";
|
|
23
|
-
/**
|
|
24
|
-
* Deletes a deployed Solution item and and all of the items that were created
|
|
25
|
-
* as part of that deployment.
|
|
26
|
-
*
|
|
27
|
-
* @param solutionItemId Id of a deployed Solution
|
|
28
|
-
* @param solutionSummary List of items in the solution that would be deleted
|
|
29
|
-
* @param authentication Credentials for the request
|
|
30
|
-
* @param options Progress reporting options
|
|
31
|
-
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
32
|
-
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
33
|
-
* one Solution will not be in either list.
|
|
34
|
-
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
35
|
-
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
36
|
-
* deletion using the solutionItemId.
|
|
37
|
-
*/
|
|
38
|
-
export declare function deleteSolutionContents(solutionItemId: string, solutionSummary: ISolutionPrecis, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2021 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Provides a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
+
* as part of that deployment.
|
|
19
|
+
*
|
|
20
|
+
* @module deleteSolution
|
|
21
|
+
*/
|
|
22
|
+
import { IDeleteSolutionOptions, ISolutionPrecis, UserSession } from "../interfaces";
|
|
23
|
+
/**
|
|
24
|
+
* Deletes a deployed Solution item and and all of the items that were created
|
|
25
|
+
* as part of that deployment.
|
|
26
|
+
*
|
|
27
|
+
* @param solutionItemId Id of a deployed Solution
|
|
28
|
+
* @param solutionSummary List of items in the solution that would be deleted
|
|
29
|
+
* @param authentication Credentials for the request
|
|
30
|
+
* @param options Progress reporting options
|
|
31
|
+
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
32
|
+
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
33
|
+
* one Solution will not be in either list.
|
|
34
|
+
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
35
|
+
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
36
|
+
* deletion using the solutionItemId.
|
|
37
|
+
*/
|
|
38
|
+
export declare function deleteSolutionContents(solutionItemId: string, solutionSummary: ISolutionPrecis, authentication: UserSession, options?: IDeleteSolutionOptions): Promise<ISolutionPrecis[]>;
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2021 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Provides a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
-
* as part of that deployment.
|
|
19
|
-
*
|
|
20
|
-
* @module deleteSolution
|
|
21
|
-
*/
|
|
22
|
-
import { EItemProgressStatus } from "../interfaces";
|
|
23
|
-
import * as deleteEmptyGroups from "./deleteEmptyGroups";
|
|
24
|
-
import * as deleteSolutionFolder from "./deleteSolutionFolder";
|
|
25
|
-
import * as deleteSolutionItem from "./deleteSolutionItem";
|
|
26
|
-
import * as removeItems from "./removeItems";
|
|
27
|
-
import * as reportProgress from "./reportProgress";
|
|
28
|
-
// ------------------------------------------------------------------------------------------------------------------ //
|
|
29
|
-
/**
|
|
30
|
-
* Deletes a deployed Solution item and and all of the items that were created
|
|
31
|
-
* as part of that deployment.
|
|
32
|
-
*
|
|
33
|
-
* @param solutionItemId Id of a deployed Solution
|
|
34
|
-
* @param solutionSummary List of items in the solution that would be deleted
|
|
35
|
-
* @param authentication Credentials for the request
|
|
36
|
-
* @param options Progress reporting options
|
|
37
|
-
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
38
|
-
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
39
|
-
* one Solution will not be in either list.
|
|
40
|
-
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
41
|
-
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
42
|
-
* deletion using the solutionItemId.
|
|
43
|
-
*/
|
|
44
|
-
export function deleteSolutionContents(solutionItemId, solutionSummary, authentication, options) {
|
|
45
|
-
const deleteOptions = options || {};
|
|
46
|
-
let progressPercentStep = 0;
|
|
47
|
-
let percentDone = 0;
|
|
48
|
-
let solutionDeletedSummary;
|
|
49
|
-
let solutionFailureSummary;
|
|
50
|
-
let solutionIds = [];
|
|
51
|
-
return new Promise(resolve => {
|
|
52
|
-
let removalPromise = Promise.resolve([
|
|
53
|
-
{
|
|
54
|
-
id: solutionSummary.id,
|
|
55
|
-
title: solutionSummary.title,
|
|
56
|
-
folder: solutionSummary.folder,
|
|
57
|
-
items: [],
|
|
58
|
-
groups: []
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
id: solutionSummary.id,
|
|
62
|
-
title: solutionSummary.title,
|
|
63
|
-
folder: solutionSummary.folder,
|
|
64
|
-
items: [],
|
|
65
|
-
groups: []
|
|
66
|
-
}
|
|
67
|
-
]);
|
|
68
|
-
if (solutionSummary.items.length > 0) {
|
|
69
|
-
// Save a copy of the Solution item ids for the deleteSolutionFolder call because removeItems
|
|
70
|
-
// destroys the solutionSummary.items list
|
|
71
|
-
solutionIds = solutionSummary.items
|
|
72
|
-
.map(item => item.id)
|
|
73
|
-
.concat([solutionItemId]);
|
|
74
|
-
const hubSiteItemIds = solutionSummary.items
|
|
75
|
-
.filter((item) => item.type === "Hub Site Application")
|
|
76
|
-
.map((item) => item.id);
|
|
77
|
-
// Delete the items
|
|
78
|
-
progressPercentStep = 100 / (solutionSummary.items.length + 2); // one extra for starting plus one extra for solution itself
|
|
79
|
-
reportProgress.reportProgress((percentDone += progressPercentStep), deleteOptions); // let the caller know that we've started
|
|
80
|
-
// Proceed with the deletion
|
|
81
|
-
removalPromise = removeItems.removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions);
|
|
82
|
-
}
|
|
83
|
-
removalPromise
|
|
84
|
-
.then((results) => {
|
|
85
|
-
[solutionDeletedSummary, solutionFailureSummary] = results;
|
|
86
|
-
// Attempt to delete groups; we won't be checking success
|
|
87
|
-
return new Promise(resolve2 => {
|
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
89
|
-
deleteEmptyGroups
|
|
90
|
-
.deleteEmptyGroups(solutionSummary.groups, authentication)
|
|
91
|
-
.then(() => {
|
|
92
|
-
resolve2(results);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
})
|
|
96
|
-
.then(() => {
|
|
97
|
-
// If there were no failed deletes, it's OK to delete Solution item
|
|
98
|
-
if (solutionFailureSummary.items.length === 0) {
|
|
99
|
-
return deleteSolutionItem.deleteSolutionItem(solutionItemId, authentication);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
// Not all items were deleted, so don't delete solution
|
|
103
|
-
return Promise.resolve({ success: false, itemId: solutionItemId });
|
|
104
|
-
}
|
|
105
|
-
})
|
|
106
|
-
.then((solutionItemDeleteStatus) => {
|
|
107
|
-
// If all deletes succeeded, see if we can delete the folder that contained them
|
|
108
|
-
if (solutionItemDeleteStatus.success) {
|
|
109
|
-
reportProgress.reportProgress(99, deleteOptions, solutionItemId, EItemProgressStatus.Finished);
|
|
110
|
-
// Can't delete if folder contains non-solution items
|
|
111
|
-
return deleteSolutionFolder.deleteSolutionFolder(solutionIds, solutionSummary.folder, authentication);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return Promise.resolve(false);
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
.then(() => {
|
|
118
|
-
resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
119
|
-
})
|
|
120
|
-
.catch(() => {
|
|
121
|
-
resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2021 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Provides a function for deleting a deployed Solution item and all of the items that were created
|
|
18
|
+
* as part of that deployment.
|
|
19
|
+
*
|
|
20
|
+
* @module deleteSolution
|
|
21
|
+
*/
|
|
22
|
+
import { EItemProgressStatus } from "../interfaces";
|
|
23
|
+
import * as deleteEmptyGroups from "./deleteEmptyGroups";
|
|
24
|
+
import * as deleteSolutionFolder from "./deleteSolutionFolder";
|
|
25
|
+
import * as deleteSolutionItem from "./deleteSolutionItem";
|
|
26
|
+
import * as removeItems from "./removeItems";
|
|
27
|
+
import * as reportProgress from "./reportProgress";
|
|
28
|
+
// ------------------------------------------------------------------------------------------------------------------ //
|
|
29
|
+
/**
|
|
30
|
+
* Deletes a deployed Solution item and and all of the items that were created
|
|
31
|
+
* as part of that deployment.
|
|
32
|
+
*
|
|
33
|
+
* @param solutionItemId Id of a deployed Solution
|
|
34
|
+
* @param solutionSummary List of items in the solution that would be deleted
|
|
35
|
+
* @param authentication Credentials for the request
|
|
36
|
+
* @param options Progress reporting options
|
|
37
|
+
* @returns Promise that will resolve with a list of two solution summaries: successful deletions
|
|
38
|
+
* and failed deletions. Ignored items (e.g., already deleted) and items shared with more than
|
|
39
|
+
* one Solution will not be in either list.
|
|
40
|
+
* Note that Solution item and its deployment folder will only be deleted if all of its deployed
|
|
41
|
+
* items were deleted (the failure list is empty). This makes it possible to re-attempted
|
|
42
|
+
* deletion using the solutionItemId.
|
|
43
|
+
*/
|
|
44
|
+
export function deleteSolutionContents(solutionItemId, solutionSummary, authentication, options) {
|
|
45
|
+
const deleteOptions = options || {};
|
|
46
|
+
let progressPercentStep = 0;
|
|
47
|
+
let percentDone = 0;
|
|
48
|
+
let solutionDeletedSummary;
|
|
49
|
+
let solutionFailureSummary;
|
|
50
|
+
let solutionIds = [];
|
|
51
|
+
return new Promise(resolve => {
|
|
52
|
+
let removalPromise = Promise.resolve([
|
|
53
|
+
{
|
|
54
|
+
id: solutionSummary.id,
|
|
55
|
+
title: solutionSummary.title,
|
|
56
|
+
folder: solutionSummary.folder,
|
|
57
|
+
items: [],
|
|
58
|
+
groups: []
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: solutionSummary.id,
|
|
62
|
+
title: solutionSummary.title,
|
|
63
|
+
folder: solutionSummary.folder,
|
|
64
|
+
items: [],
|
|
65
|
+
groups: []
|
|
66
|
+
}
|
|
67
|
+
]);
|
|
68
|
+
if (solutionSummary.items.length > 0) {
|
|
69
|
+
// Save a copy of the Solution item ids for the deleteSolutionFolder call because removeItems
|
|
70
|
+
// destroys the solutionSummary.items list
|
|
71
|
+
solutionIds = solutionSummary.items
|
|
72
|
+
.map(item => item.id)
|
|
73
|
+
.concat([solutionItemId]);
|
|
74
|
+
const hubSiteItemIds = solutionSummary.items
|
|
75
|
+
.filter((item) => item.type === "Hub Site Application")
|
|
76
|
+
.map((item) => item.id);
|
|
77
|
+
// Delete the items
|
|
78
|
+
progressPercentStep = 100 / (solutionSummary.items.length + 2); // one extra for starting plus one extra for solution itself
|
|
79
|
+
reportProgress.reportProgress((percentDone += progressPercentStep), deleteOptions); // let the caller know that we've started
|
|
80
|
+
// Proceed with the deletion
|
|
81
|
+
removalPromise = removeItems.removeItems(solutionSummary, hubSiteItemIds, authentication, percentDone, progressPercentStep, deleteOptions);
|
|
82
|
+
}
|
|
83
|
+
removalPromise
|
|
84
|
+
.then((results) => {
|
|
85
|
+
[solutionDeletedSummary, solutionFailureSummary] = results;
|
|
86
|
+
// Attempt to delete groups; we won't be checking success
|
|
87
|
+
return new Promise(resolve2 => {
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
89
|
+
deleteEmptyGroups
|
|
90
|
+
.deleteEmptyGroups(solutionSummary.groups, authentication)
|
|
91
|
+
.then(() => {
|
|
92
|
+
resolve2(results);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
})
|
|
96
|
+
.then(() => {
|
|
97
|
+
// If there were no failed deletes, it's OK to delete Solution item
|
|
98
|
+
if (solutionFailureSummary.items.length === 0) {
|
|
99
|
+
return deleteSolutionItem.deleteSolutionItem(solutionItemId, authentication);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
// Not all items were deleted, so don't delete solution
|
|
103
|
+
return Promise.resolve({ success: false, itemId: solutionItemId });
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
.then((solutionItemDeleteStatus) => {
|
|
107
|
+
// If all deletes succeeded, see if we can delete the folder that contained them
|
|
108
|
+
if (solutionItemDeleteStatus.success) {
|
|
109
|
+
reportProgress.reportProgress(99, deleteOptions, solutionItemId, EItemProgressStatus.Finished);
|
|
110
|
+
// Can't delete if folder contains non-solution items
|
|
111
|
+
return deleteSolutionFolder.deleteSolutionFolder(solutionIds, solutionSummary.folder, authentication);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
return Promise.resolve(false);
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
.then(() => {
|
|
118
|
+
resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
119
|
+
})
|
|
120
|
+
.catch(() => {
|
|
121
|
+
resolve([solutionDeletedSummary, solutionFailureSummary]);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
125
|
//# sourceMappingURL=deleteSolutionContents.js.map
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
/** @license
|
|
2
|
-
* Copyright 2018 Esri
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* @module deleteSolutionFolder
|
|
18
|
-
*/
|
|
19
|
-
import { UserSession } from "../interfaces";
|
|
20
|
-
/**
|
|
21
|
-
* Deletes a deployed Solution's folder if the folder is empty.
|
|
22
|
-
*
|
|
23
|
-
* @param solutionFolderId Id of the folder of a deployed Solution
|
|
24
|
-
* @param deletedItemIds Ids in the Solution, including the Solution item; used to deal with lagging folder deletion
|
|
25
|
-
* @param authentication Credentials for the request
|
|
26
|
-
* @returns Promise that will resolve if deletion was successful and fail if any part of it failed;
|
|
27
|
-
* if the folder has a non-Solution item, it will not be deleted, but the function will return true
|
|
28
|
-
*/
|
|
29
|
-
export declare function deleteSolutionFolder(solutionIds: string[], folderId: string, authentication: UserSession): Promise<boolean>;
|
|
1
|
+
/** @license
|
|
2
|
+
* Copyright 2018 Esri
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @module deleteSolutionFolder
|
|
18
|
+
*/
|
|
19
|
+
import { UserSession } from "../interfaces";
|
|
20
|
+
/**
|
|
21
|
+
* Deletes a deployed Solution's folder if the folder is empty.
|
|
22
|
+
*
|
|
23
|
+
* @param solutionFolderId Id of the folder of a deployed Solution
|
|
24
|
+
* @param deletedItemIds Ids in the Solution, including the Solution item; used to deal with lagging folder deletion
|
|
25
|
+
* @param authentication Credentials for the request
|
|
26
|
+
* @returns Promise that will resolve if deletion was successful and fail if any part of it failed;
|
|
27
|
+
* if the folder has a non-Solution item, it will not be deleted, but the function will return true
|
|
28
|
+
*/
|
|
29
|
+
export declare function deleteSolutionFolder(solutionIds: string[], folderId: string, authentication: UserSession): Promise<boolean>;
|