UNPKG

@raona/sp

Version:

Raona utilities to work with Sharepoint using pnp/sp

115 lines (114 loc) 4.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var FieldType_1 = require("../enums/FieldType"); var GetDataAsStreamService = /** @class */ (function () { function GetDataAsStreamService() { } GetDataAsStreamService.prototype.parseViewFields = function (xml, viewFields) { if (xml.indexOf('<ViewFields>') > -1) { var fromIndex = xml.indexOf('<ViewFields>'); var toIndex = xml.indexOf('</ViewFields>'); var substring = xml.substring(fromIndex, toIndex + 13); xml = xml.replace(substring, ''); } return xml = xml.replace('<Query>', viewFields + "<Query>"); }; GetDataAsStreamService.prototype.parseFields = function (fields) { var fieldsParsed = []; fields.forEach(function (f) { fieldsParsed.push(f.name); }); return fieldsParsed; }; GetDataAsStreamService.prototype.selectFieldsCamlQuery = function (viewFields) { var stringXml = ''; if (viewFields.length > 0) { stringXml += '<ViewFields>'; viewFields.map(function (field) { stringXml += "<FieldRef Name=\"" + field + "\"/>"; }); stringXml += '</ViewFields>'; } return stringXml; }; GetDataAsStreamService.prototype.transformProperties = function (items, selectedFields) { var _this = this; var itemsParsed = []; items.forEach(function (item) { var itemCloned = Object.assign({}, item); selectedFields.forEach(function (field) { var property = _this.getProperty(itemCloned, field); if (property !== undefined) itemCloned["" + property.key] = property.value; }); itemsParsed.push(itemCloned); }); return itemsParsed; }; GetDataAsStreamService.prototype.getProperty = function (item, field) { var newProperty = undefined; if (item[field.name]) { switch (field.type) { case FieldType_1.FieldType.lookup: var result_1 = []; item[field.name].forEach(function (n) { return result_1.push(n.lookupId); }); newProperty = { key: field.name + "Id", value: result_1 }; break; case FieldType_1.FieldType.taxonomySingleValue: newProperty = { key: field.name, value: { Label: item[field.name]['Label'], TermGuid: item[field.name]['TermID'], }, }; break; case FieldType_1.FieldType.taxonomyMultipleValue: var valueTaxonomyMultiple_1 = []; item[field.name].forEach(function (value) { valueTaxonomyMultiple_1.push({ Label: value['Label'], TermGuid: value['TermID'] }); }); newProperty = { key: field.name, value: valueTaxonomyMultiple_1, }; break; case FieldType_1.FieldType.image: newProperty = { key: "" + field.name, value: { Description: "" + item[field.name + ".desc"], Url: "" + item[field.name], }, }; break; case FieldType_1.FieldType.boolean: var booleanValue = false; if (item[field.name + ".value"] === '1') booleanValue = true; newProperty = { key: "" + field.name, value: booleanValue }; break; case FieldType_1.FieldType.number: newProperty = { key: "" + field.name, value: Number(item[field.name].replace('.', '')), }; break; case FieldType_1.FieldType.group: newProperty = { key: field.name + "Id", value: Number(item[field.name][0]['id']) }; break; case FieldType_1.FieldType.text: // newProperty = undefined break; case FieldType_1.FieldType.date: // newProperty = undefined break; default: break; } } return newProperty; }; return GetDataAsStreamService; }()); exports.GetDataAsStreamService = GetDataAsStreamService;