UNPKG

@mos-connection/helper

Version:

Helper functions for the MOS-connection library

141 lines 7.9 kB
"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