-
Notifications
You must be signed in to change notification settings - Fork 116
/
remove.ts
128 lines (120 loc) · 3.4 KB
/
remove.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/* Copyright (c) 2018 Environmental Systems Research Institute, Inc.
* Apache-2.0 */
import { request, getPortalUrl } from "@esri/arcgis-rest-request";
import {
IItemIdRequestOptions,
IItemResourceRequestOptions,
IFolderIdRequestOptions,
IItemRemoveInfoRequestOptions,
determineOwner
} from "./helpers";
/**
* ```js
* import { removeItem } from '@esri/arcgis-rest-items';
* //
* removeItem({
* id: "3ef",
* authentication
* })
* ```
* Delete an item from the portal. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-item.htm) for more information.
*
* @param requestOptions - Options for the request
* @returns A Promise that deletes an item.
*/
export function removeItem(
requestOptions: IItemIdRequestOptions
): Promise<any> {
const owner = determineOwner(requestOptions);
const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
requestOptions.id
}/delete`;
return request(url, requestOptions);
}
/**
* Remove a resource associated with an item
*
* @param requestOptions - Options for the request
* @returns A Promise that deletes an item resource.
*/
export function removeItemResource(
requestOptions: IItemResourceRequestOptions
): Promise<any> {
const owner = determineOwner(requestOptions);
const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
requestOptions.id
}/removeResources`;
// mix in user supplied params
requestOptions.params = {
...requestOptions.params,
resource: requestOptions.resource
};
return request(url, requestOptions);
}
/**
* ```js
* import { removeItemInfo } from '@esri/arcgis-rest-items';
* //
* removeItemInfo({
* id: '3ef',
* infoFile: 'bigkahuna.json',
* authentication
* })
* .then(response) // --> {success:true|false}
* ```
* Remove an info file associated with an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-info.htm) for more information.
*
* @param requestOptions - Options for the request
* @returns A Promise that deletes an item resource.
*/
export function removeItemInfo(
requestOptions: IItemRemoveInfoRequestOptions
): Promise<any> {
const owner = determineOwner(requestOptions);
const url = `${getPortalUrl(requestOptions)}/content/users/${owner}/items/${
requestOptions.id
}/deleteInfo`;
// mix in user supplied params
requestOptions.params = {
...requestOptions.params,
infoFile: requestOptions.fileName
};
return request(url, requestOptions);
}
/**
* ```js
* import { removeFolder } from "@esri/arcgis-rest-items";
* //
* removeFolder({
* folderId: "fe4",
* owner: "c@sey",
* authentication
* })
* .then(response)
*
* ```
* Delete a non-root folder and all the items it contains. See the [REST
* Documentation](https://developers.arcgis.com/rest/users-groups-and-items/delete-folder.htm) for
* more information.
*
* @param requestOptions - Options for the request
* @returns A Promise that deletes a folder
*/
export function removeFolder(
requestOptions: IFolderIdRequestOptions
): Promise<{
success: boolean;
folder: {
username: string;
id: string;
title: string;
};
}> {
const owner = determineOwner(requestOptions);
const url = `${getPortalUrl(
requestOptions
)}/content/users/${encodeURIComponent(owner)}/${
requestOptions.folderId
}/delete`;
return request(url, requestOptions);
}