UNPKG

@sysdoc/sharepoint-utils

Version:

Sysdoc's core Sharepoint utilities

143 lines (142 loc) 5.69 kB
"use strict"; /*! * Copyright Sysdoc @ 2019 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SPBasicListProvider = void 0; var executor_1 = require("../util/executor"); var fields_1 = require("../util/fields"); var SPBasicListProvider = /** @class */ (function () { function SPBasicListProvider(cfg) { this.listTitle = cfg.listTitle; this.webUrl = cfg.webUrl || _spPageContextInfo.webAbsoluteUrl; this.logger = cfg.logger; } SPBasicListProvider.prototype.itemToJson = function (item) { var fields = item.get_fieldValues(); var obj = {}; obj.author = fields_1.userValueToObject(fields.Author); obj.editor = fields_1.userValueToObject(fields.Editor); obj.moderationStatus = fields._ModerationStatus; obj.created = fields.Created; obj.modified = fields.Modified; obj.dirty = fields._Dirty; obj.likeCount = fields._likeCount; obj.id = fields.ID; obj.title = fields.Title; return obj; }; SPBasicListProvider.prototype.jsonToItem = function (json, item) { return item; }; SPBasicListProvider.prototype.update = function (obj, exec) { var _this = this; var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { var item_1 = list.getItemById(obj.id); item_1 = _this.jsonToItem(obj, item_1); item_1.update(); ctx.load(item_1); ctx.executeQueryAsync(function () { resolve(_this.itemToJson(item_1)); }, function (c, err) { return reject(err); }); return; } reject(err); }); }; SPBasicListProvider.prototype.create = function (obj, exec, folderUrl) { var _this = this; var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { var itemInfo = new SP.ListItemCreationInformation(); if (folderUrl) { itemInfo.set_folderUrl(folderUrl); } var item_2 = list.addItem(itemInfo); item_2 = _this.jsonToItem(obj, item_2); item_2.update(); ctx.load(item_2); ctx.executeQueryAsync(function () { resolve(_this.itemToJson(item_2)); }, function (c, err) { reject(err); }); return; } reject(err); }); }; SPBasicListProvider.prototype.save = function (obj, exec) { var _this = this; var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { // if has valid id, lets try to find the item and update it first. if (obj.id && obj.id !== -1) { resolve(_this.update(obj, exe)); } else { // lets attempt to create the item resolve(_this.create(obj, exe)); } } reject(err); }); }; SPBasicListProvider.prototype.getByQuery = function (query, exec) { var _this = this; var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { var items_1 = list.getItems(query); ctx.load(items_1); ctx.executeQueryAsync(function () { resolve(items_1.get_data().map(function (e) { return _this.itemToJson(e); })); }, function (c, err) { return reject(err); }); return; } reject(err); }); }; SPBasicListProvider.prototype.getAll = function (exec) { return this.getByQuery(SP.CamlQuery.createAllItemsQuery(), exec); }; SPBasicListProvider.prototype.get = function (key, exec) { var _this = this; var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { var item_3 = list.getItemById(key); ctx.load(item_3); ctx.executeQueryAsync(function () { resolve(_this.itemToJson(item_3)); }, function (c, err) { reject(err); }); return; } reject(err); }); }; SPBasicListProvider.prototype.delete = function (key, exec) { var exe = exec || executor_1.asyncListExecutor(this.webUrl, this.listTitle); return exe(function (err, ctx, web, list, resolve, reject) { if (!err) { var item = list.getItemById(key); item.recycle(); ctx.executeQueryAsync(function () { resolve(undefined); }, function (c, err) { reject(err); }); return; } reject(err); }); }; return SPBasicListProvider; }()); exports.SPBasicListProvider = SPBasicListProvider;