@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
149 lines • 8.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OrgAssetsService = void 0;
var tslib_1 = require("tslib");
var FileBrowserService_1 = require("./FileBrowserService");
var sp_http_1 = require("@microsoft/sp-http");
/**
* OrgAssetsService class
*/
var OrgAssetsService = /** @class */ (function (_super) {
tslib_1.__extends(OrgAssetsService, _super);
/**
* Constructor
* @param context Component context
* @param itemsToDownloadCount Items to download count
*/
function OrgAssetsService(context, itemsToDownloadCount) {
var _this = _super.call(this, context, itemsToDownloadCount) || this;
// Site organization assets library server relative URL
_this._orgAssetsLibraryServerRelativeSiteUrl = null;
/**
* Gets files from current sites library
* @param _listUrl Unused parameter (not used in this implementation)
* @param folderPath Folder path to get items from
* @param acceptedFilesExtensions File extensions to filter the results
* @param nextPageQueryStringParams Query string parameters to get the next page of results
* @returns Items in the specified folder
*/
_this.getListItems = function (_listUrl, folderPath, acceptedFilesExtensions, nextPageQueryStringParams) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var filesQueryResult, libName, libFullUrl, queryStringParams, restApi, error_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
filesQueryResult = { items: [], nextHref: null };
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 4]);
if (folderPath.charAt(0) !== '/') {
folderPath = "/".concat(folderPath);
}
libName = folderPath.replace("".concat(this.orgAssetsLibraryServerRelativeSiteUrl, "/"), '');
libName = libName.split('/')[0];
libFullUrl = this.buildAbsoluteUrl("".concat(this.orgAssetsLibraryServerRelativeSiteUrl, "/").concat(libName));
queryStringParams = "";
// Do not pass FolderServerRelativeUrl as query parameter
// Attach passed nextPageQueryStringParams values to REST URL
if (nextPageQueryStringParams) {
// Remove start ? from the query params
if (nextPageQueryStringParams.charAt(0) === "?") {
nextPageQueryStringParams = nextPageQueryStringParams.substring(1);
}
queryStringParams = nextPageQueryStringParams;
}
else {
queryStringParams = "RootFolder=".concat(folderPath);
}
restApi = "".concat(this.context.pageContext.web.absoluteUrl, "/_api/SP.List.GetListDataAsStream?listFullUrl='").concat(libFullUrl, "'&").concat(queryStringParams);
return [4 /*yield*/, this._getListDataAsStream(restApi, null, acceptedFilesExtensions)];
case 2:
filesQueryResult = _a.sent();
return [3 /*break*/, 4];
case 3:
error_1 = _a.sent();
filesQueryResult.items = null;
console.error(error_1 instanceof Error ? error_1.message : String(error_1));
return [3 /*break*/, 4];
case 4: return [2 /*return*/, filesQueryResult];
}
});
}); };
/**
* Gets document and media libraries from the site
* @param includePageLibraries Unused parameter (not used in this implementation)
* @returns Document and media libraries from the site
*/
_this.getSiteMediaLibraries = function () {
var args_1 = [];
for (var _i = 0; _i < arguments.length; _i++) {
args_1[_i] = arguments[_i];
}
return tslib_1.__awaiter(_this, tslib_1.__spreadArray([], args_1, true), void 0, function (includePageLibraries) {
var restApi, orgAssetsResult, orgAssetsData, libs, error_2;
var _this = this;
if (includePageLibraries === void 0) { includePageLibraries = false; }
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 3, , 4]);
restApi = "".concat(this.context.pageContext.web.absoluteUrl, "/_api/SP.Publishing.SitePageService.FilePickerTabOptions");
return [4 /*yield*/, this.context.spHttpClient.get(restApi, sp_http_1.SPHttpClient.configurations.v1)];
case 1:
orgAssetsResult = _a.sent();
if (!orgAssetsResult || !orgAssetsResult.ok) {
throw new Error("Something went wrong when executing request. Status='".concat(orgAssetsResult.status, "'"));
}
return [4 /*yield*/, orgAssetsResult.json()];
case 2:
orgAssetsData = _a.sent();
if (!orgAssetsData || !orgAssetsData.OrgAssets || !orgAssetsData.OrgAssets.OrgAssetsLibraries || !orgAssetsData.OrgAssets.OrgAssetsLibraries.Items || orgAssetsData.OrgAssets.OrgAssetsLibraries.Items.length <= 0) {
return [2 /*return*/, null];
}
this.orgAssetsLibraryServerRelativeSiteUrl = orgAssetsData ? orgAssetsData.OrgAssets.Url.DecodedUrl : null;
libs = orgAssetsData && orgAssetsData.OrgAssets ? orgAssetsData.OrgAssets.OrgAssetsLibraries.Items.map(function (libItem) { return _this._parseOrgAssetsLibraryItem(libItem); }) : [];
return [2 /*return*/, libs];
case 3:
error_2 = _a.sent();
console.error("[OrgAssetsService.getOrganisationAssetsLibraries]: Err='".concat(error_2 instanceof Error ? error_2.message : String(error_2), "'"));
return [2 /*return*/, null];
case 4: return [2 /*return*/];
}
});
});
};
/**
* Parses the organisation assets library item
* @param libItem Library item to parse
* @returns Organisation assets library
*/
_this._parseOrgAssetsLibraryItem = function (libItem) {
var orgAssetsLibrary = {
absoluteUrl: _this.buildAbsoluteUrl(libItem.LibraryUrl.DecodedUrl),
title: libItem.DisplayName,
serverRelativeUrl: libItem.LibraryUrl.DecodedUrl,
iconPath: libItem.ThumbnailUrl && libItem.ThumbnailUrl.DecodedUrl ? _this.buildAbsoluteUrl("".concat(_this.orgAssetsLibraryServerRelativeSiteUrl, "/").concat(libItem.ThumbnailUrl.DecodedUrl)) : null
};
return orgAssetsLibrary;
};
return _this;
}
Object.defineProperty(OrgAssetsService.prototype, "orgAssetsLibraryServerRelativeSiteUrl", {
get: function () {
return this._orgAssetsLibraryServerRelativeSiteUrl;
},
set: function (value) {
var _a;
if (value === "/") {
this._orgAssetsLibraryServerRelativeSiteUrl = "";
}
else {
this._orgAssetsLibraryServerRelativeSiteUrl = (_a = value === null || value === void 0 ? void 0 : value.replace(/\/$/, "")) !== null && _a !== void 0 ? _a : null;
}
},
enumerable: false,
configurable: true
});
return OrgAssetsService;
}(FileBrowserService_1.FileBrowserService));
exports.OrgAssetsService = OrgAssetsService;
//# sourceMappingURL=OrgAssetsService.js.map