@raona/sp
Version:
Raona utilities to work with Sharepoint using pnp/sp
958 lines • 120 kB
JavaScript
"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,