forked from CITKParus/P8-ExchangeService
Функции конвертации XML - JSON - XML для параметров отпрвки (заголовки и т.п.) сообщения/ответа
This commit is contained in:
parent
d3b189ef67
commit
6bb8b46682
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
const _ = require("lodash"); //Работа с массивами и объектами
|
const _ = require("lodash"); //Работа с массивами и объектами
|
||||||
const os = require("os"); //Средства операционной системы
|
const os = require("os"); //Средства операционной системы
|
||||||
|
const xml2js = require("xml2js"); //Конвертация XML в JSON
|
||||||
const Schema = require("validate"); //Схемы валидации
|
const Schema = require("validate"); //Схемы валидации
|
||||||
const nodemailer = require("nodemailer"); //Отправка E-Mail сообщений
|
const nodemailer = require("nodemailer"); //Отправка E-Mail сообщений
|
||||||
const {
|
const {
|
||||||
@ -252,6 +253,40 @@ const getIPs = () => {
|
|||||||
return ips;
|
return ips;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Разбор XML (обёртка для async/await)
|
||||||
|
const parseXML = (sXML, options) => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
xml2js.parseString(sXML, options, (err, result) => {
|
||||||
|
if (err) reject(err);
|
||||||
|
else resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
//Разбор параметров сообщения/ответа (XML > JSON)
|
||||||
|
const parseOptionsXML = async sOptions => {
|
||||||
|
try {
|
||||||
|
parseRes = await parseXML(sOptions, {
|
||||||
|
explicitArray: false,
|
||||||
|
mergeAttrs: true,
|
||||||
|
valueProcessors: [xml2js.processors.parseNumbers, xml2js.processors.parseBooleans]
|
||||||
|
});
|
||||||
|
return parseRes.options;
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error("Ошибка рабора XML с параметрами сообщения/ответа: " + e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//Сборка параметров сообщения/ответа (JSON > XML)
|
||||||
|
const buildOptionsXML = options => {
|
||||||
|
try {
|
||||||
|
let builder = new xml2js.Builder();
|
||||||
|
return builder.buildObject(options);
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error("Ошибка сборки XML с параметрами сообщения/ответа: " + e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------
|
//-----------------
|
||||||
// Интерфейс модуля
|
// Интерфейс модуля
|
||||||
//-----------------
|
//-----------------
|
||||||
@ -265,3 +300,6 @@ exports.getAppSrvFunction = getAppSrvFunction;
|
|||||||
exports.sendMail = sendMail;
|
exports.sendMail = sendMail;
|
||||||
exports.buildURL = buildURL;
|
exports.buildURL = buildURL;
|
||||||
exports.getIPs = getIPs;
|
exports.getIPs = getIPs;
|
||||||
|
exports.parseXML = parseXML;
|
||||||
|
exports.parseOptionsXML = parseOptionsXML;
|
||||||
|
exports.buildOptionsXML = buildOptionsXML;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user