UNPKG

@raona/sp

Version:

Raona utilities to work with Sharepoint using pnp/sp

958 lines 120 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); require("@pnp/polyfill-ie11"); // import { sp, List, Field, Item, PagedItemCollection, Web, ItemUpdateResult, ItemAddResult, FileAddResult, PermissionKind, SPRest, CheckinType, CamlQuery, WebEnsureUserResult, SharePointQueryable, SharePointQueryableInstance, SharePointQueryableCollection, FolderAddResult, SPBatch } from '@pnp/sp'; // import { SearchQueryInit, SearchResults } from "@pnp/sp/src/search"; var sp_1 = require("@pnp/sp"); var sp_http_1 = require("@microsoft/sp-http"); var groupBy_1 = require("../utils/groupBy"); // import { toRelativeUrl } from "../utils"; var sp_2 = require("@pnp/sp"); var sp_3 = require("@pnp/sp"); var SPLogger_1 = require("../logger/SPLogger"); var SPFakeLogger_1 = require("../logger/SPFakeLogger"); var sp_4 = require("@pnp/sp"); var sp_5 = require("@pnp/sp"); var Url_1 = require("../utils/Url"); var AssociatedGroupType; (function (AssociatedGroupType) { AssociatedGroupType[AssociatedGroupType["OWNERS"] = 0] = "OWNERS"; AssociatedGroupType[AssociatedGroupType["MEMBERS"] = 1] = "MEMBERS"; AssociatedGroupType[AssociatedGroupType["VISITORS"] = 2] = "VISITORS"; })(AssociatedGroupType = exports.AssociatedGroupType || (exports.AssociatedGroupType = {})); var SPAbstractService = /** @class */ (function () { /** * @param context WebpartContextBase or ListViewCommandSetContext */ //TODO: not typed because of problems with spfx versions conflicts, create an SPFXContext to mimic it function SPAbstractService(context, logOptions, webUrlToOperate) { this.context = context; this.logOptions = logOptions; var contextType = typeof context; var web; switch (contextType) { case 'object': sp_3.sp.setup({ spfxContext: context, sp: { headers: { 'Accept': 'application/json;odata=nometadata' } } }); break; case 'string': web = new sp_2.Web(encodeURI(context)); } this.sp = sp_3.sp; this.web = web || sp_3.sp.web; logOptions ? this.logger = new SPLogger_1.SPLogger(logOptions) : this.logger = new SPFakeLogger_1.SPFakeLogger(); if (webUrlToOperate) { this.setWeb(webUrlToOperate, true); } } SPAbstractService.prototype.getServerRelativeUrl = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { this.logger.preLog({ message: 'Starting getServerRelativeUrl', level: 1 /* Info */ }); try { return [2 /*return*/, this.context.pageContext.serverRelativeUrl.then(function (result) { _this.logger.postLog({ message: 'Finished getServerRelativeUrl', level: 1 /* Info */, data: result }); return result; })]; } catch (e) { this.logger.errorLog({ message: 'getServerRelativeUrl: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } return [2 /*return*/]; }); }); }; SPAbstractService.prototype.updateAllListItems = function (listName, update) { return __awaiter(this, void 0, void 0, function () { var batch, list, items, entityTypeFullName, _i, items_1, item, e_1; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting updateAllListItems', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 5, , 6]); batch = this.web.createBatch(); list = this.web.lists.getByTitle(listName); return [4 /*yield*/, list.items.get()]; case 2: items = _a.sent(); return [4 /*yield*/, list.getListItemEntityTypeFullName()]; case 3: entityTypeFullName = _a.sent(); this.logger.logBetween({ message: 'updateAllListItems: list, items, entityTypeFullName obtained', level: 1 /* Info */, data: { list: list, items: items, entityType: entityTypeFullName } }); for (_i = 0, items_1 = items; _i < items_1.length; _i++) { item = items_1[_i]; list.items.getById(item.Id).inBatch(batch) .update(update, '*', entityTypeFullName); } return [4 /*yield*/, batch.execute()]; case 4: _a.sent(); this.logger.postLog({ message: 'Finished updateAllListItems', level: 1 /* Info */ }); return [3 /*break*/, 6]; case 5: e_1 = _a.sent(); this.logger.errorLog({ message: 'updateAllListItems: ' + e_1.name + ": " + e_1.message, level: 3 /* Error */ }); return [3 /*break*/, 6]; case 6: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getListbyId = function (listId) { var _this = this; this.logger.preLog({ message: 'Starting getListById', level: 1 /* Info */ }); try { return this.web.lists.getById(listId).get().then(function (result) { _this.logger.postLog({ message: 'Finished getListById', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getList: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getList = function (listName) { var _this = this; this.logger.preLog({ message: 'Starting getList', level: 1 /* Info */ }); try { return this.web.lists.getByTitle(listName).get().then(function (result) { _this.logger.postLog({ message: 'Finished getList', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getList: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.List = function (listName) { this.logger.preLog({ message: 'Starting List', level: 1 /* Info */ }); try { var list = this.web.lists.getByTitle(listName); this.logger.postLog({ message: 'Finished List', level: 1 /* Info */, data: sp_4.List }); return list; } catch (e) { this.logger.errorLog({ message: 'List: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getListItemEntity = function (listName) { var _this = this; this.logger.preLog({ message: 'Starting getListItemEntity', level: 1 /* Info */ }); try { return this.web.lists.getByTitle(listName).getListItemEntityTypeFullName().then(function (result) { _this.logger.postLog({ message: 'Finished getListItemEntity', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getListItemEntity: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getLists = function () { var _this = this; this.logger.preLog({ message: 'Starting getLists', level: 1 /* Info */ }); try { return this.web.lists.get().then(function (result) { _this.logger.postLog({ message: 'Finished getLists', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getLists: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getFieldsFromList = function (listName) { var _this = this; var fieldNames = []; for (var _i = 1; _i < arguments.length; _i++) { fieldNames[_i - 1] = arguments[_i]; } this.logger.preLog({ message: 'Starting getFieldsFromList', level: 1 /* Info */ }); try { return Promise.all(fieldNames.map(function (fieldName) { return _this.getFieldFromListCommon(listName, fieldName); })).then(function (result) { _this.logger.postLog({ message: 'Finished getFieldsFromList', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getFieldsFromList: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.addListItemOnFolder = function (listName, folderName, item, listPath) { return __awaiter(this, void 0, void 0, function () { var path, list, itemResolve, ex_1, e_2; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting addListItemOnFolder', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 10, , 11]); path = void 0; if (listPath) { path = listPath; } else { path = (this.relativeUrl || this.context.pageContext.site.serverRelativeUrl) + "/Lists/" + listName; } return [4 /*yield*/, this.web.lists.getByTitle(listName)]; case 2: list = _a.sent(); return [4 /*yield*/, list.items.add(item)]; case 3: itemResolve = _a.sent(); _a.label = 4; case 4: _a.trys.push([4, 6, , 8]); return [4 /*yield*/, this.getFolderOnList(listName, folderName)]; case 5: _a.sent(); return [3 /*break*/, 8]; case 6: ex_1 = _a.sent(); return [4 /*yield*/, this.createFolderOnCustomList(listName, folderName)]; case 7: _a.sent(); return [3 /*break*/, 8]; case 8: return [4 /*yield*/, this.web .getFileByServerRelativeUrl(path + "/" + itemResolve.data.Id + "_.000") .moveTo(path + "/" + folderName + "/" + itemResolve.data.Id + "_.000")]; case 9: _a.sent(); this.logger.postLog({ message: 'Finished addListItemOnFolder', level: 1 /* Info */, data: itemResolve }); return [2 /*return*/, itemResolve]; case 10: e_2 = _a.sent(); this.logger.errorLog({ message: 'addListItemOnFolder: ' + e_2.name + ": " + e_2.message, level: 3 /* Error */ }); return [3 /*break*/, 11]; case 11: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getFieldByTitle = function (listName, fieldName) { return __awaiter(this, void 0, void 0, function () { var list, field, e_3; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getFieldByTitle', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); return [4 /*yield*/, this.web.lists.getByTitle(listName)]; case 2: list = _a.sent(); return [4 /*yield*/, list.fields.getByTitle(fieldName).get()]; case 3: field = _a.sent(); this.logger.postLog({ message: 'Finished getFieldByTitle', level: 1 /* Info */, data: field }); return [2 /*return*/, field]; case 4: e_3 = _a.sent(); this.logger.errorLog({ message: 'getFieldByTitle: ' + e_3.name + ": " + e_3.message, level: 3 /* Error */ }); return [3 /*break*/, 5]; case 5: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getAllFieldsFromList = function (listName) { return __awaiter(this, void 0, void 0, function () { var e_4; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getAllFieldsFromList', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.web.lists.getByTitle(listName).fields.get().then(function (result) { _this.logger.postLog({ message: 'Finished getAllFieldsFromList', level: 1 /* Info */, data: result }); return result; })]; case 2: return [2 /*return*/, _a.sent()]; case 3: e_4 = _a.sent(); this.logger.errorLog({ message: 'getAllFieldsFromList: ' + e_4.name + ": " + e_4.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getFieldsFromCurrentList = function () { var fieldNames = []; for (var _i = 0; _i < arguments.length; _i++) { fieldNames[_i] = arguments[_i]; } return __awaiter(this, void 0, void 0, function () { var fields, fieldsObj, e_5; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getFieldsFromCurrentList', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, Promise.all(fieldNames.map(function (fieldName) { return _this.getFieldFromListId(_this.context.pageContext.list.id.toString(), fieldName); }))]; case 2: fields = _a.sent(); fieldsObj = fields.reduce(function (a, b, index) { a[fieldNames[index]] = b; return a; }, {}); this.logger.postLog({ message: 'Finished getAllFieldsFromList', level: 1 /* Info */, data: fieldsObj }); return [2 /*return*/, fieldsObj]; case 3: e_5 = _a.sent(); this.logger.errorLog({ message: 'getFieldsFromCurrentList: ' + e_5.name + ": " + e_5.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getFieldFromListCommon = function (listName, fieldName) { var _this = this; this.logger.preLog({ message: 'Starting getFieldFromListCommon', level: 1 /* Info */ }); try { return this.web.lists.getByTitle(listName).fields.getByInternalNameOrTitle(fieldName).get().then(function (result) { _this.logger.postLog({ message: 'Finished getFieldFromListCommon', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getFieldFromListCommon: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getFieldFromListId = function (id, fieldName) { var _this = this; this.logger.preLog({ message: 'Starting getFieldFromListId', level: 1 /* Info */ }); try { return this.web.lists.getById(id).fields.getByInternalNameOrTitle(fieldName).get().then(function (result) { _this.logger.postLog({ message: 'Finished getFieldFromListId', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getFieldFromListId: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.recycleListItem = function (listName, itemId) { var _this = this; this.logger.preLog({ message: 'Starting recycleListItem', level: 1 /* Info */ }); try { return this.web.lists.getByTitle(listName).items.getById(itemId).recycle().then(function (result) { _this.logger.postLog({ message: 'Finished recycleListItem', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'recycleListItem: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.recycleListItemByFilter = function (listName, filter) { return __awaiter(this, void 0, void 0, function () { var list, items, e_6; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting recycleListItemByFilter', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); list = this.web.lists.getByTitle(listName); return [4 /*yield*/, list.items.filter(filter).top(1).get()]; case 2: items = _a.sent(); this.logger.logBetween({ message: 'recycleListItemByFilter: list items obtained', level: 1 /* Info */, data: items }); if (Array.isArray(items) && items.length > 0) { return [2 /*return*/, list.items.getById(items[0].Id).recycle().then(function (result) { _this.logger.postLog({ message: 'Finished recycleListItemByFilter', level: 1 /* Info */, data: result }); return result; })]; } return [3 /*break*/, 4]; case 3: e_6 = _a.sent(); this.logger.errorLog({ message: 'recycleListItemByFilter: ' + e_6.name + ": " + e_6.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.deleteListItem = function (listName, itemId) { var _this = this; this.logger.preLog({ message: 'Starting deleteListItem', level: 1 /* Info */ }); try { return this.web.lists.getByTitle(listName).items.getById(itemId).delete().then(function (result) { _this.logger.postLog({ message: 'Finished deleteListItem', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'deleteListItem: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.deleteListItemByFilter = function (listName, filter) { return __awaiter(this, void 0, void 0, function () { var list, items, e_7; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting deleteListItemByFilter', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); list = this.web.lists.getByTitle(listName); return [4 /*yield*/, list.items.filter(filter).top(1).get()]; case 2: items = _a.sent(); this.logger.logBetween({ message: 'deleteListItemByFilter: list items obtained', level: 1 /* Info */, data: items }); if (Array.isArray(items) && items.length > 0) { return [2 /*return*/, list.items.getById(items[0].Id).delete().then(function (result) { _this.logger.postLog({ message: 'Finished deleteListItemByFilter', level: 1 /* Info */, data: result }); return result; })]; } return [3 /*break*/, 4]; case 3: e_7 = _a.sent(); this.logger.errorLog({ message: 'deleteListItemByFilter: ' + e_7.name + ": " + e_7.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getListItemById = function (options, itemId) { return __awaiter(this, void 0, void 0, function () { var listItems, e_8; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getListItemById', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); options.filters = "ID eq " + itemId; return [4 /*yield*/, this.getListItems(options)]; case 2: listItems = (_a.sent())[0]; this.logger.postLog({ message: 'Finished getListItemById', level: 1 /* Info */, data: listItems }); return [2 /*return*/, listItems]; case 3: e_8 = _a.sent(); this.logger.errorLog({ message: 'getListItemById: ' + e_8.name + ": " + e_8.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getListItemByIdToUpdate = function (listName, itemId) { return __awaiter(this, void 0, void 0, function () { var listItem, e_9; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getListItemByIdToUpdate', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.web.lists.getByTitle(listName).items.getById(itemId)]; case 2: listItem = _a.sent(); this.logger.postLog({ message: 'Finished getListItemById', level: 1 /* Info */, data: listItem }); return [2 /*return*/, listItem]; case 3: e_9 = _a.sent(); this.logger.errorLog({ message: 'getListItemByIdToUpdate: ' + e_9.name + ": " + e_9.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getListContentTypes = function (options) { if (options.listId != '') { return this.web.lists.getById(options.listId).contentTypes.get(); } else if (options.listName != '') { return this.web.lists.getByTitle(options.listName).contentTypes.get(); } }; SPAbstractService.prototype.getListItems = function (options) { var _this = this; this.logger.preLog({ message: 'Starting getListItems', level: 1 /* Info */ }); if (options.listName === '' && options.listId === '') throw new Error('Both listName and listId cannot be empty'); try { if (options.listName != '') { return this.applyQueryCollectionOptions(options, this.web.lists.getByTitle(options.listName).items).get().then(function (result) { _this.logger.postLog({ message: 'Finished getListItems', level: 1 /* Info */, data: result }); return result; }); } else if (options.listId != '') { return this.applyQueryCollectionOptions(options, this.web.lists.getById(options.listId).items).get().then(function (result) { _this.logger.postLog({ message: 'Finished getListItems', level: 1 /* Info */, data: result }); return result; }); } } catch (e) { this.logger.errorLog({ message: 'getListItems' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getListItemsPaged = function (options) { var _this = this; this.logger.preLog({ message: 'Starting getListItemsPaged', level: 1 /* Info */ }); try { return this.applyQueryCollectionOptions(options, this.web.lists.getByTitle(options.listName).items).getPaged().then(function (result) { _this.logger.postLog({ message: 'Finished getListItemsPaged', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getListItemsPaged: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; //TODO: better type this (remove any) SPAbstractService.prototype.getListItemsCaml = function (listName, query, expand, batch) { var _this = this; this.logger.preLog({ message: 'Starting getListItemsCaml', level: 1 /* Info */ }); var q = batch ? this.web.lists.getByTitle(listName).inBatch(batch) : this.web.lists.getByTitle(listName); try { return q.getItemsByCAMLQuery(query, expand).then(function (result) { _this.logger.postLog({ message: 'Finished getListItemsCaml', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getListItemsCaml: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getListByIdItemsCaml = function (listId, query, expand, batch) { var _this = this; this.logger.preLog({ message: 'Starting getListItemsCaml', level: 1 /* Info */ }); var q = batch ? this.web.lists.getById(listId).inBatch(batch) : this.web.lists.getById(listId); try { return q.getItemsByCAMLQuery(query, expand).then(function (result) { _this.logger.postLog({ message: 'Finished getListItemsCaml', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getListItemsCaml: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getFileItems = function (options) { var _this = this; this.logger.preLog({ message: 'Starting getFileItems', level: 1 /* Info */ }); try { return this.applyQueryCollectionOptions(options, this.web.lists.getByTitle(options.listName).rootFolder.files).get().then(function (result) { _this.logger.postLog({ message: 'Finished getFileItems', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getFileItems: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.toggleLike = function (listName, itemId, likeInfo, userId, liked) { return __awaiter(this, void 0, void 0, function () { var e_10; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting toggleLike', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 8, , 9]); if (!liked) return [3 /*break*/, 4]; return [4 /*yield*/, this.like(listName, itemId, likeInfo, userId)]; case 2: return [4 /*yield*/, (_a.sent()).item.get().then(function (result) { _this.logger.postLog({ message: 'Finished toggleLike', level: 1 /* Info */, data: result }); return result; })]; case 3: return [2 /*return*/, _a.sent()]; case 4: return [4 /*yield*/, this.unlike(listName, itemId, likeInfo, userId)]; case 5: return [4 /*yield*/, (_a.sent()).item.get().then(function (result) { _this.logger.postLog({ message: 'Finished toggleLike', level: 1 /* Info */, data: result }); return result; })]; case 6: return [2 /*return*/, _a.sent()]; case 7: return [3 /*break*/, 9]; case 8: e_10 = _a.sent(); this.logger.errorLog({ message: 'toggleLike: ' + e_10.name + ": " + e_10.message, level: 3 /* Error */ }); return [3 /*break*/, 9]; case 9: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getTaxonomyInternalNameForList = function (listName, internalName) { return __awaiter(this, void 0, void 0, function () { var fields, field, textField, e_11; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getTaxonomyInternalNameForList', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 4, , 5]); fields = this.List(listName).fields; return [4 /*yield*/, fields.getByInternalNameOrTitle(internalName).select('TextField').get()]; case 2: field = _a.sent(); return [4 /*yield*/, fields.getById(field.TextField).get()]; case 3: textField = _a.sent(); this.logger.postLog({ message: 'Finished getTaxonomyInternalNameForList', level: 1 /* Info */, data: field }); return [2 /*return*/, textField.InternalName]; case 4: e_11 = _a.sent(); this.logger.errorLog({ message: 'getTaxonomyInternalNameForList: ' + e_11.name + ": " + e_11.message, level: 3 /* Error */ }); return [3 /*break*/, 5]; case 5: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.stringifyTaxonomy = function (taxonomy, wssid) { if (wssid === void 0) { wssid = -1; } this.logger.preLog({ message: 'Starting stringifyTaxonomy', level: 1 /* Info */ }); var name = taxonomy.Label || taxonomy.name; var guid = taxonomy.TermID || taxonomy.key; wssid = taxonomy.WssId || wssid; var data = wssid + ";#" + name + "|" + guid + ";#"; this.logger.postLog({ message: 'Finished getTaxonomyInternalNameForList', level: 1 /* Info */, data: data }); return data; }; SPAbstractService.prototype.like = function (listName, itemId, likeInfo, userId) { var _this = this; this.logger.preLog({ message: 'Starting like', level: 1 /* Info */ }); try { likeInfo.UserLikes.push(userId.toString()); var info = { UserLikes: likeInfo.UserLikes, LikeCount: likeInfo.LikeCount += 1 }; return this.web.lists.getByTitle(listName).items.getById(itemId).update({ "LikedByStringId": { "results": info.UserLikes }, "LikesCount": info.LikeCount }).then(function (result) { _this.logger.postLog({ message: 'Finished like', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'like: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.unlike = function (listName, itemId, likeInfo, userId) { var _this = this; this.logger.preLog({ message: 'Starting unlike', level: 1 /* Info */ }); try { likeInfo.UserLikes.splice(likeInfo.UserLikes.indexOf(userId.toString()), 1); var info = { UserLikes: likeInfo.UserLikes, LikeCount: likeInfo.LikeCount -= 1 }; return this.web.lists.getByTitle(listName).items.getById(itemId).update({ "LikedByStringId": { "results": info.UserLikes }, "LikesCount": info.LikeCount }).then(function (result) { _this.logger.postLog({ message: 'Finished unlike', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'unlike: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getFileUrlsFromFolder = function (folderPath, top, expand) { var _this = this; this.logger.preLog({ message: 'Starting getFileUrlsFromFolder', level: 1 /* Info */ }); try { var query = this.web.getFolderByServerRelativePath(folderPath).files.select('ServerRelativeUrl', 'LinkingUrl'); // pnp bug with top as undefined if (top) { query = query.top(top); } if (expand) { query = query.expand.apply(query, expand); } return query.get().then(function (result) { _this.logger.postLog({ message: 'Finished getFileUrlsFromFolder', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getFileUrlsFromFolder: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.ensureUserByLoginName = function (loginName) { var _this = this; this.logger.preLog({ message: 'Starting ensureUserByLoginName', level: 1 /* Info */ }); try { return this.web.ensureUser(loginName).then(function (result) { _this.logger.postLog({ message: 'Finished ensureUserByLoginName', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'ensureUserByLoginName: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUserByLoginName = function (loginName) { return __awaiter(this, void 0, void 0, function () { var e_12; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting getUserByLoginName', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.web.siteUsers.getByLoginName(loginName).get().then(function (result) { _this.logger.postLog({ message: 'Finished getUserByLoginName', level: 1 /* Info */, data: result }); return result; })]; case 2: return [2 /*return*/, _a.sent()]; case 3: e_12 = _a.sent(); this.logger.errorLog({ message: 'getUserByLoginName: ' + e_12.name + ": " + e_12.message, level: 3 /* Error */ }); return [3 /*break*/, 4]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getUserByEmail = function (email) { var _this = this; this.logger.preLog({ message: 'Starting getUserByEmail', level: 1 /* Info */ }); try { return this.web.siteUsers.getByEmail(email).get().then(function (result) { _this.logger.postLog({ message: 'Finished getUserByEmail', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getUserByEmail: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUserById = function (userId) { var _this = this; this.logger.preLog({ message: 'Starting getUserById', level: 1 /* Info */ }); try { return this.web.siteUsers.getById(userId).get().then(function (result) { _this.logger.postLog({ message: 'Finished getUserById', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getUserById: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getCurrentUserGroups = function () { this.logger.preLog({ message: 'Starting getCurrentUserGroups', level: 1 /* Info */ }); try { return this.web.currentUser.groups.get(); } catch (e) { this.logger.errorLog({ message: 'getCurrentUserGroups: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUserGroupsById = function (userId) { this.logger.preLog({ message: 'Starting getUserGroupsById', level: 1 /* Info */ }); try { return this.web.siteUsers.getById(userId).groups.get(); } catch (e) { this.logger.errorLog({ message: 'getUserGroupsById: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUserGroupsByLoginName = function (loginName) { this.logger.preLog({ message: 'Starting getUserGroupsByLoginName', level: 1 /* Info */ }); try { return this.web.siteUsers.getByLoginName(loginName).groups.get(); } catch (e) { this.logger.errorLog({ message: 'getUserGroupsByLoginName: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUserGroupsByEmail = function (email) { this.logger.preLog({ message: 'Starting getUserGroupsByEmail', level: 1 /* Info */ }); try { return this.web.siteUsers.getByEmail(email).groups.get(); } catch (e) { this.logger.errorLog({ message: 'getUserGroupsByEmail: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.getUsers = function () { var _this = this; this.logger.preLog({ message: 'Starting getUsers', level: 1 /* Info */ }); try { return this.web.siteUsers.get().then(function (result) { _this.logger.postLog({ message: 'Finished getUsers', level: 1 /* Info */, data: result }); return result; }); } catch (e) { this.logger.errorLog({ message: 'getUsers: ' + e.name + ": " + e.message, level: 3 /* Error */ }); } }; SPAbstractService.prototype.isUserInGroup = function (id, groupName, isIdEmail) { return __awaiter(this, void 0, void 0, function () { var user, e_13; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting isUserInGroup', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 8, , 9]); user = void 0; if (!(typeof id === "number")) return [3 /*break*/, 3]; return [4 /*yield*/, this.web.siteGroups.getByName(groupName).users.getById(id).get()]; case 2: user = _a.sent(); return [3 /*break*/, 7]; case 3: if (!isIdEmail) return [3 /*break*/, 5]; return [4 /*yield*/, this.web.siteGroups.getByName(groupName).users.getByEmail(id).get()]; case 4: user = _a.sent(); return [3 /*break*/, 7]; case 5: return [4 /*yield*/, this.web.siteGroups.getByName(groupName).users.getByLoginName(id).get()]; case 6: user = _a.sent(); _a.label = 7; case 7: this.logger.postLog({ message: 'Finished isUserInGroup', level: 1 /* Info */, data: user }); return [2 /*return*/, user !== null]; case 8: e_13 = _a.sent(); this.logger.errorLog({ message: 'isUserInGroup: ' + e_13.name + ": " + e_13.message, level: 3 /* Error */ }); return [2 /*return*/, false]; case 9: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.canCurrentUserViewMembership = function (groupName) { return __awaiter(this, void 0, void 0, function () { var group, e_14; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting canCurrentUserViewMembership', level: 1 /* Info */ }); _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, this.web.siteGroups.getByName(groupName).select('CanCurrentUserViewMembership').get()]; case 2: group = _a.sent(); this.logger.postLog({ message: 'Finished canCurrentUserViewMembership', level: 1 /* Info */, data: group.CanCurrentUserViewMembership }); return [2 /*return*/, group.CanCurrentUserViewMembership !== null && group.CanCurrentUserViewMembership]; case 3: e_14 = _a.sent(); this.logger.errorLog({ message: 'canCurrentUserViewMembership: ' + e_14.name + ": " + e_14.message, level: 3 /* Error */ }); return [2 /*return*/, false]; case 4: return [2 /*return*/]; } }); }); }; SPAbstractService.prototype.getGroupByAssociatedGroupType = function (associatedType) { switch (associatedType) { case AssociatedGroupType.OWNERS: return this.web.associatedOwnerGroup; case AssociatedGroupType.MEMBERS: return this.web.associatedMemberGroup; case AssociatedGroupType.VISITORS: return this.web.associatedVisitorGroup; } }; SPAbstractService.prototype.isUserInGroupAssociated = function (id, associatedType, isIdEmail) { return __awaiter(this, void 0, void 0, function () { var group, user, e_15; return __generator(this, function (_a) { switch (_a.label) { case 0: this.logger.preLog({ message: 'Starting isUserInGroupAssociated', level: 1 /* Info */ }); group = this.getGroupByAssociatedGroupType(associatedType); _a.label = 1; case 1: _a.trys.push([1,