@itwin/imodels-client-management
Version:
iModels API client wrapper for applications that manage iModels.
78 lines • 4.24 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import { EntityListIteratorImpl, OperationsBase, } from "../../base/internal";
import { PreferReturn, } from "../../base/types";
export class FavoriteIModelOperations extends OperationsBase {
/**
* Gets favorite iModels for a specific iTwin. This method returns iModels in their minimal representation. The returned iterator
* internally queries entities in pages. Wraps the {@link https://developer.bentley.com/apis/imodels-v2/operations/get-my-favorite-imodels/ Get My Favorite iTwin iModels}
* operation from iModels API.
* @param {GetFavoriteIModelListParams} params parameters for this operation. See {@link GetFavoriteIModelListParams}.
* @returns {EntityListIterator<MinimalIModel>} iterator for favorite iModel list. See {@link EntityListIterator}, {@link MinimalIModel}.
*/
getMinimalList(params) {
return new EntityListIteratorImpl(async () => this.getEntityCollectionPage({
authorization: params.authorization,
url: this._options.urlFormatter.getFavoriteIModelListUrl({
urlParams: params.urlParams,
}),
preferReturn: PreferReturn.Minimal,
entityCollectionAccessor: (response) => response.body.iModels,
headers: params.headers,
}));
}
/**
* Gets favorite iModels for a specific iTwin. This method returns iModels in their full representation. The returned iterator
* internally queries entities in pages. Wraps the {@link https://developer.bentley.com/apis/imodels-v2/operations/get-my-favorite-imodels/ Get My Favorite iTwin iModels}
* operation from iModels API.
* @param {GetFavoriteIModelListParams} params parameters for this operation. See {@link GetFavoriteIModelListParams}.
* @returns {EntityListIterator<IModel>} iterator for favorite iModel list. See {@link EntityListIterator}, {@link IModel}.
*/
getRepresentationList(params) {
return new EntityListIteratorImpl(async () => this.getEntityCollectionPage({
authorization: params.authorization,
url: this._options.urlFormatter.getFavoriteIModelListUrl({
urlParams: params.urlParams,
}),
preferReturn: PreferReturn.Representation,
entityCollectionAccessor: (response) => response.body.iModels,
headers: params.headers,
}));
}
/**
* Adds an iModel to the calling user's favorites list. Wraps the
* {@link https://developer.bentley.com/apis/imodels-v2/operations/add-imodel-to-my-favorites/ Add iModel to My Favorites}
* operation from iModels API.
* @param {AddIModelToFavoritesParams} params parameters for this operation. See {@link AddIModelToFavoritesParams}.
* @returns {Promise<void>}
*/
async add(params) {
await this.sendPutRequest({
authorization: params.authorization,
url: this._options.urlFormatter.getFavoriteIModelUrl({
iModelId: params.iModelId,
}),
headers: params.headers,
body: new Uint8Array(),
});
}
/**
* Removes an iModel from the calling user's favorites list. Wraps the
* {@link https://developer.bentley.com/apis/imodels-v2/operations/remove-imodel-from-my-favorites/ Remove iModel from My Favorites}
* operation from iModels API.
* @param {RemoveIModelFromFavoritesParams} params parameters for this operation. See {@link RemoveIModelFromFavoritesParams}.
* @returns {Promise<void>}
*/
async remove(params) {
await this.sendDeleteRequest({
authorization: params.authorization,
url: this._options.urlFormatter.getFavoriteIModelUrl({
iModelId: params.iModelId,
}),
headers: params.headers,
});
}
}
//# sourceMappingURL=FavoriteIModelOperations.js.map