UNPKG

@kwiz/common

Version:

KWIZ common utilities and helpers for M365 platform

89 lines 3.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeleteWebPart = DeleteWebPart; exports.HideWebPart = HideWebPart; exports.GetWebParts = GetWebParts; exports.GetWebPartById = GetWebPartById; const strings_1 = require("../../helpers/strings"); const typecheckers_1 = require("../../helpers/typecheckers"); const rest_types_1 = require("../../types/rest.types"); const webpart_types_1 = require("../../types/webpart.types"); const rest_1 = require("../rest"); const common_1 = require("./common"); const WEBPART_EXPAND = ["WebPart", "WebPart/Properties", "ZoneId"].join(","); function _getWebPartRestUrl(siteUrl, fileServerRelativeUrl, options = { id: null, method: null }) { let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getfilebyserverrelativeurl(@u)/getlimitedwebpartmanager(scope=1)/webparts`; if ((0, typecheckers_1.isValidGuid)(options.id)) { url += `/getbyid('${(0, strings_1.normalizeGuid)(options.id)}')`; if (!(0, typecheckers_1.isNullOrUndefined)(options.method)) { url += `/${options.method}`; } } url += `?$expand=${WEBPART_EXPAND}&@u='${encodeURIComponent(fileServerRelativeUrl)}'`; return url; } async function DeleteWebPart(siteUrl, fileServerRelativeUrl, webPartId) { let webPart = GetWebPartById(siteUrl, fileServerRelativeUrl, webPartId); if ((0, typecheckers_1.isNullOrUndefined)(webPart)) { return true; } let url = _getWebPartRestUrl(siteUrl, fileServerRelativeUrl, { id: webPartId, method: webpart_types_1.WebPartMethods.DeleteWebPart }); try { let response = await (0, rest_1.GetJson)(url, null, { method: "POST", includeDigestInPost: true, allowCache: false, jsonMetadata: rest_types_1.jsonTypes.nometadata, spWebUrl: siteUrl //allow getDigest to work when not in SharePoint }); return response["odata.null"] === true; } catch { } return false; } async function HideWebPart(siteUrl, fileServerRelativeUrl, webPartId, hidden) { let webPart = await GetWebPartById(siteUrl, fileServerRelativeUrl, webPartId); if ((0, typecheckers_1.isNullOrUndefined)(webPart)) { return true; } let url = _getWebPartRestUrl(siteUrl, fileServerRelativeUrl, { id: webPartId, method: webpart_types_1.WebPartMethods.SaveWebPartChanges }); try { let response = await (0, rest_1.GetJson)(url, JSON.stringify(webPart), { method: "POST", includeDigestInPost: true, allowCache: false, jsonMetadata: rest_types_1.jsonTypes.nometadata, spWebUrl: siteUrl //allow getDigest to work when not in SharePoint }); return response["odata.null"] === true; } catch { } return false; } async function GetWebParts(siteUrl, fileServerRelativeUrl) { let url = _getWebPartRestUrl(siteUrl, fileServerRelativeUrl); let response = await (0, rest_1.GetJson)(url, null, { allowCache: false, jsonMetadata: rest_types_1.jsonTypes.nometadata, spWebUrl: siteUrl //allow getDigest to work when not in SharePoint }); return !(0, typecheckers_1.isNullOrUndefined)(response) && !(0, typecheckers_1.isNullOrEmptyArray)(response.value) ? response.value : []; } async function GetWebPartById(siteUrl, fileServerRelativeUrl, webPartId) { let url = _getWebPartRestUrl(siteUrl, fileServerRelativeUrl, { id: webPartId, method: null }); let response = await (0, rest_1.GetJson)(url, null, { allowCache: false, jsonMetadata: rest_types_1.jsonTypes.nometadata, spWebUrl: siteUrl //allow getDigest to work when not in SharePoint }); return !(0, typecheckers_1.isNullOrUndefined)(response) && !(0, typecheckers_1.isNullOrEmptyString)(response.Id) ? response : null; } //# sourceMappingURL=webparts.js.map