@esri/arcgis-rest-portal
Version:
ArcGIS Online and Enterprise content and user helpers for @esri/arcgis-rest-request
243 lines (242 loc) • 9.46 kB
TypeScript
import { IRequestOptions, IGroup } from "@esri/arcgis-rest-request";
import { IItem } from "../helpers.js";
import { IItemDataOptions, IItemRelationshipOptions, IUserItemOptions, FetchReadMethodName } from "./helpers.js";
/**
* ```
* import { getItem } from "@esri/arcgis-rest-portal";
* //
* getItem("ae7")
* .then(response);
* // or
* getItem("ae7", { authentication })
* .then(response)
* ```
* Get an item by id. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item.htm) for more information.
*
* @param id - Item Id
* @param requestOptions - Options for the request
* @returns A Promise that will resolve with the data from the response.
*/
export declare function getItem(id: string, requestOptions?: IRequestOptions): Promise<IItem>;
/**
* Get the fully qualified base URL to the REST end point for an item.
* @param id Item Id
* @param portalUrlOrRequestOptions a portal URL or request options
* @returns URL to the item's REST end point, defaults to `https://www.arcgis.com/sharing/rest/content/items/{id}`
*/
export declare const getItemBaseUrl: (id: string, portalUrlOrRequestOptions?: string | IRequestOptions) => string;
/**
* ```
* import { getItemData } from "@esri/arcgis-rest-portal";
* //
* getItemData("ae7")
* .then(response)
* // or
* getItemData("ae7", { authentication })
* .then(response)
* ```
* Get the /data for an item. If no data exists, returns `undefined`. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item-data.htm) for more information.
* @param id - Item Id
* @param requestOptions - Options for the request
* @returns A Promise that will resolve with the json data for the item.
*/
export declare function getItemData(id: string, requestOptions?: IItemDataOptions): Promise<any>;
export interface IGetRelatedItemsResponse {
total: number;
relatedItems: IItem[];
}
/**
* ```
* import { getRelatedItems } from "@esri/arcgis-rest-portal";
* //
* getRelatedItems({
* id: "ae7",
* relationshipType: "Service2Layer" // or several ["Service2Layer", "Map2Area"]
* })
* .then(response)
* ```
* Get the related items. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/related-items.htm) for more information.
*
* @param requestOptions - Options for the request
* @returns A Promise to get some item resources.
*/
export declare function getRelatedItems(requestOptions: IItemRelationshipOptions): Promise<IGetRelatedItemsResponse>;
export interface IGetItemResourcesResponse {
total: number;
start: number;
nextStart: number;
num: number;
resources?: [
{
resource: string;
access: string;
created: number;
size: number;
}
];
}
/**
* Get the resources associated with an item
*
* @param requestOptions - Options for the request
* @returns A Promise to get some item resources.
*/
export declare function getItemResources(id: string, requestOptions?: IRequestOptions): Promise<IGetItemResourcesResponse>;
export interface IGetItemGroupsResponse {
admin?: IGroup[];
member?: IGroup[];
other?: IGroup[];
}
export interface IGetItemResourceOptions extends IRequestOptions {
/**
* Name of the info file, optionally including the folder path
*/
fileName: string;
/**
* How the fetch response should be read, see:
* https://developer.mozilla.org/en-US/docs/Web/API/Body#Methods
*/
readAs?: FetchReadMethodName;
}
/**
* Fetches an item resource and optionally parses it to the correct format.
*
* Provides JSON parse error protection by sanitizing out any unescaped control characters before parsing that would otherwise cause an error to be thrown.
*
* ```js
* import { getItemResource } from "@esri/arcgis-rest-portal";
*
* // Parses contents as blob by default
* getItemResource("3ef", { fileName: "resource.jpg", ...})
* .then(resourceContents => {});
*
* // Can override parse method
* getItemResource("3ef", { fileName: "resource.json", readAs: 'json', ...})
* .then(resourceContents => {});
*
* // Get the response object instead
* getItemResource("3ef",{ rawResponse: true, fileName: "resource.json" })
* .then(response => {})
* ```
*
* @param {string} itemId
* @param {IGetItemResourceOptions} requestOptions
*/
export declare function getItemResource(itemId: string, requestOptions: IGetItemResourceOptions): Promise<any>;
/**
* Lists the groups of which the item is a part, only showing the groups that the calling user can access. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/groups.htm) for more information.
*
* ```js
* import { getItemGroups } from "@esri/arcgis-rest-portal";
*
* getItemGroups("30e5fe3149c34df1ba922e6f5bbf808f")
* .then(response)
* ```
*
* @param id - The Id of the item to query group association for.
* @param requestOptions - Options for the request
* @returns A Promise to get some item groups.
*/
export declare function getItemGroups(id: string, requestOptions?: IRequestOptions): Promise<IGetItemGroupsResponse>;
export interface IItemStatusOptions extends IUserItemOptions {
/**
* The type of asynchronous job for which the status has to be checked. Default is none, which check the item's status.
*/
jobType?: "publish" | "generateFeatures" | "export" | "createService";
/**
* The job ID returned during publish, generateFeatures, export, and createService calls.
*/
jobId?: string;
/**
* The response format. The default and the only response format for this resource is HTML.
*/
format?: "html";
}
export interface IGetItemStatusResponse {
status: "partial" | "processing" | "failed" | "completed";
statusMessage: string;
itemId: string;
}
/**
* Inquire about status when publishing an item, adding an item in async mode, or adding with a multipart upload. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/status.htm) for more information.
*
* ```js
* import { getItemStatus } from "@esri/arcgis-rest-portal";
*
* getItemStatus({
* id: "30e5fe3149c34df1ba922e6f5bbf808f",
* authentication
* })
* .then(response)
* ```
*
* @param id - The Id of the item to get status for.
* @param requestOptions - Options for the request
* @returns A Promise to get the item status.
*/
export declare function getItemStatus(requestOptions: IItemStatusOptions): Promise<IGetItemStatusResponse>;
export interface IGetItemPartsResponse {
parts: number[];
}
/**
* Lists the part numbers of the file parts that have already been uploaded in a multipart file upload. This method can be used to verify the parts that have been received as well as those parts that were not received by the server. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/parts.htm) for more information.
*
* ```js
* import { getItemParts } from "@esri/arcgis-rest-portal";
*
* getItemParts({
* id: "30e5fe3149c34df1ba922e6f5bbf808f",
* authentication
* })
* .then(response)
* ```
*
* @param id - The Id of the item to get part list.
* @param requestOptions - Options for the request
* @returns A Promise to get the item part list.
*/
export declare function getItemParts(requestOptions: IUserItemOptions): Promise<IGetItemPartsResponse>;
export interface IGetItemInfoOptions extends IRequestOptions {
/**
* Name of the info file, optionally including the folder path
*/
fileName?: string;
/**
* How the fetch response should be read, see:
* https://developer.mozilla.org/en-US/docs/Web/API/Body#Methods
*/
readAs?: FetchReadMethodName;
}
/**
* ```
* import { getItemInfo } from "@esri/arcgis-rest-portal";
* // get the "Info Card" for the item
* getItemInfo("ae7")
* .then(itemInfoXml) // XML document as a string
* // or get the contents of a specific file
* getItemInfo("ae7", { fileName: "form.json", readAs: "json", authentication })
* .then(formJson) // JSON document as JSON
* ```
* Get an info file for an item. See the [REST Documentation](https://developers.arcgis.com/rest/users-groups-and-items/item-info-file.htm) for more information.
* @param id - Item Id
* @param requestOptions - Options for the request, including the file name which defaults to `iteminfo.xml`.
* If the file is not a text file (XML, HTML, etc) you will need to specify the `readAs` parameter
* @returns A Promise that will resolve with the contents of the info file for the item.
*/
export declare function getItemInfo(id: string, requestOptions?: IGetItemInfoOptions): Promise<any>;
/**
* ```
* import { getItemMetadata } from "@esri/arcgis-rest-portal";
* // get the metadata for the item
* getItemMetadata("ae7")
* .then(itemMetadataXml) // XML document as a string
* // or with additional request options
* getItemMetadata("ae7", { authentication })
* .then(itemMetadataXml) // XML document as a string
* ```
* Get the standard formal metadata XML file for an item (`/info/metadata/metadata.xml`)
* @param id - Item Id
* @param requestOptions - Options for the request
* @returns A Promise that will resolve with the contents of the metadata file for the item as a string.
*/
export declare function getItemMetadata(id: string, requestOptions?: IRequestOptions): Promise<any>;