@mos-connection/helper
Version:
Helper functions for the MOS-connection library
141 lines • 7.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.XMLMosListSearchableSchema = exports.XMLMosObjectList = exports.XMLMosRequestObjectList = void 0;
const XMLBuilder = require("xmlbuilder");
const lib_1 = require("../lib");
const parseMosTypes_1 = require("../parseMosTypes");
const Utils_1 = require("../../utils/Utils");
const profile1_1 = require("../profile1");
const ParseError_1 = require("../ParseError");
const ensureMethods_1 = require("../../utils/ensureMethods");
/* eslint-disable @typescript-eslint/no-namespace */
var XMLMosRequestObjectList;
(function (XMLMosRequestObjectList) {
function fromXML(path, xml, strict) {
try {
xml = (0, ensureMethods_1.ensureXMLObject)(xml, strict);
const mosTypes = (0, parseMosTypes_1.getParseMosTypes)(strict);
const list = {
username: mosTypes.string.createRequired(xml.username, 'username'),
queryID: mosTypes.mosString128.createRequired(xml.queryID, 'queryID'),
listReturnStart: mosTypes.number.createOptional(xml.listReturnStart, 'listReturnStart') ?? null,
listReturnEnd: mosTypes.number.createOptional(xml.listReturnEnd, 'listReturnEnd') ?? null,
generalSearch: mosTypes.mosString128.createRequired(xml.generalSearch, 'generalSearch'),
mosSchema: mosTypes.string.createRequired(xml.mosSchema, 'mosSchema'),
searchGroups: [],
};
if ('searchGroup' in xml) {
for (const searchGroup of (0, ensureMethods_1.ensureXMLObjectArray)(xml.searchGroup, strict)) {
const searchFields = [];
for (const xmlSearchField of (0, ensureMethods_1.ensureXMLObjectArray)(searchGroup.searchField, strict)) {
const values = {
...xmlSearchField,
...(0, parseMosTypes_1.getXMLAttributes)(xmlSearchField),
};
if (values.XPath === undefined)
continue;
const searchField = {
XPath: mosTypes.string.createRequired(values.XPath, 'XPath'),
sortByOrder: mosTypes.number.createOptional(values.sortByOrder, 'sortByOrder'),
sortType: mosTypes.string.createOptional(values.sortType, 'sortType'),
};
(0, lib_1.omitUndefined)(searchField);
searchFields.push(searchField);
}
list.searchGroups.push({ searchFields });
}
}
(0, lib_1.omitUndefined)(list);
return list;
}
catch (e) {
throw ParseError_1.ParseError.handleCaughtError(path, e);
}
}
XMLMosRequestObjectList.fromXML = fromXML;
function toXML(xml, objList, strict) {
xml.att('username', objList.username);
(0, Utils_1.addTextElementInternal)(xml, 'username', objList.username, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'queryID', objList.queryID, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnStart', objList.listReturnStart, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnEnd', objList.listReturnEnd, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'generalSearch', objList.generalSearch, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'mosSchema', objList.mosSchema, undefined, strict);
for (const searchGroup of objList.searchGroups) {
const xmlSearchGroup = XMLBuilder.create('searchGroup');
for (const searchField of searchGroup.searchFields) {
(0, Utils_1.addTextElementInternal)(xmlSearchGroup, 'searchField', '', {
XPath: searchField.XPath,
sortByOrder: searchField.sortByOrder + '',
sortType: searchField.sortType,
}, strict);
}
xml.importDocument(xmlSearchGroup);
}
}
XMLMosRequestObjectList.toXML = toXML;
})(XMLMosRequestObjectList = exports.XMLMosRequestObjectList || (exports.XMLMosRequestObjectList = {}));
var XMLMosObjectList;
(function (XMLMosObjectList) {
function fromXML(path, xml, strict) {
try {
xml = (0, ensureMethods_1.ensureXMLObject)(xml, strict);
const mosTypes = (0, parseMosTypes_1.getParseMosTypes)(strict);
const attrs = (0, parseMosTypes_1.getXMLAttributes)(xml);
const objList = {
username: mosTypes.string.createRequired(xml.username || attrs.username, 'username'),
queryID: mosTypes.string.createRequired(xml.queryID, 'queryID'),
listReturnStart: mosTypes.number.createRequired(xml.listReturnStart, 'listReturnStart'),
listReturnEnd: mosTypes.number.createRequired(xml.listReturnEnd, 'listReturnEnd'),
listReturnTotal: mosTypes.number.createRequired(xml.listReturnTotal, 'listReturnTotal'),
listReturnStatus: mosTypes.string.createOptional(xml.listReturnStatus, 'listReturnStatus'),
list: (0, ensureMethods_1.isXMLObject)(xml.list) ? profile1_1.XMLMosObjects.fromXML('list.mosObj', xml.list.mosObj, strict) : undefined,
};
(0, lib_1.omitUndefined)(objList);
return objList;
}
catch (e) {
throw ParseError_1.ParseError.handleCaughtError(path, e);
}
}
XMLMosObjectList.fromXML = fromXML;
function toXML(xml, objList, strict) {
xml.att('username', objList.username);
(0, Utils_1.addTextElementInternal)(xml, 'queryID', objList.queryID, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnStart', objList.listReturnStart, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnEnd', objList.listReturnEnd, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnTotal', objList.listReturnTotal, undefined, strict);
(0, Utils_1.addTextElementInternal)(xml, 'listReturnStatus', objList.listReturnStatus, undefined, strict);
if (objList.list) {
const xmlList = (0, Utils_1.addTextElementInternal)(xml, 'list', '', undefined, strict);
profile1_1.XMLMosObjects.toXML(xmlList, objList.list, strict);
}
}
XMLMosObjectList.toXML = toXML;
})(XMLMosObjectList = exports.XMLMosObjectList || (exports.XMLMosObjectList = {}));
var XMLMosListSearchableSchema;
(function (XMLMosListSearchableSchema) {
function fromXML(path, xml, strict) {
try {
xml = (0, ensureMethods_1.ensureXMLObject)(xml, strict);
const mosTypes = (0, parseMosTypes_1.getParseMosTypes)(strict);
const attrs = (0, parseMosTypes_1.getXMLAttributes)(xml);
const schema = {
username: mosTypes.string.createRequired(xml.username || attrs.username, 'username'),
mosSchema: mosTypes.string.createRequired(xml.mosSchema, 'mosSchema'),
};
(0, lib_1.omitUndefined)(schema);
return schema;
}
catch (e) {
throw ParseError_1.ParseError.handleCaughtError(path, e);
}
}
XMLMosListSearchableSchema.fromXML = fromXML;
function toXML(xml, schema, strict) {
xml.att('username', schema.username);
(0, Utils_1.addTextElementInternal)(xml, 'mosSchema', schema.mosSchema, undefined, strict);
}
XMLMosListSearchableSchema.toXML = toXML;
})(XMLMosListSearchableSchema = exports.XMLMosListSearchableSchema || (exports.XMLMosListSearchableSchema = {}));
//# sourceMappingURL=xmlConversion.js.map