UNPKG

box-node-sdk

Version:

Official SDK for Box Platform APIs

80 lines 3.01 kB
import { deserializeAppItem } from '../schemas/appItem.js'; import { NetworkSession } from '../networking/network.js'; import { FetchOptions } from '../networking/fetchOptions.js'; import { prepareParams } from '../internal/utils.js'; import { toString } from '../internal/utils.js'; export class FindAppItemForSharedLinkOptionals { cancellationToken = void 0; constructor(fields) { if (fields.cancellationToken !== undefined) { this.cancellationToken = fields.cancellationToken; } } } export class FindAppItemForSharedLinkHeaders { /** * A header containing the shared link and optional password for the * shared link. * * The format for this header is `shared_link=[link]&shared_link_password=[password]`. */ boxapi; /** * Extra headers that will be included in the HTTP request. */ extraHeaders = {}; constructor(fields) { if (fields.boxapi !== undefined) { this.boxapi = fields.boxapi; } if (fields.extraHeaders !== undefined) { this.extraHeaders = fields.extraHeaders; } } } export class SharedLinksAppItemsManager { auth; networkSession = new NetworkSession({}); constructor(fields) { if (fields.auth !== undefined) { this.auth = fields.auth; } if (fields.networkSession !== undefined) { this.networkSession = fields.networkSession; } } /** * Returns the app item represented by a shared link. * * The link can originate from the current enterprise or another. * @param {FindAppItemForSharedLinkHeadersInput} headersInput Headers of findAppItemForSharedLink method * @param {FindAppItemForSharedLinkOptionalsInput} optionalsInput * @returns {Promise<AppItem>} */ async findAppItemForSharedLink(headersInput, optionalsInput = {}) { const headers = new FindAppItemForSharedLinkHeaders({ boxapi: headersInput.boxapi, extraHeaders: headersInput.extraHeaders, }); const optionals = new FindAppItemForSharedLinkOptionals({ cancellationToken: optionalsInput.cancellationToken, }); const cancellationToken = optionals.cancellationToken; const headersMap = prepareParams({ ...{ ['boxapi']: toString(headers.boxapi) }, ...headers.extraHeaders, }); const response = await this.networkSession.networkClient.fetch(new FetchOptions({ url: ''.concat(this.networkSession.baseUrls.baseUrl, '/2.0/shared_items#app_items'), method: 'GET', headers: headersMap, responseFormat: 'json', auth: this.auth, networkSession: this.networkSession, cancellationToken: cancellationToken, })); return { ...deserializeAppItem(response.data), rawData: response.data, }; } } //# sourceMappingURL=sharedLinksAppItems.js.map