92 lines
3.5 KiB
JavaScript
92 lines
3.5 KiB
JavaScript
/*
|
||
Сервис интеграции ПП Парус 8 с WEB API
|
||
Модели данных: описатели параметров функций модуля обработки исходящих сообщений
|
||
*/
|
||
|
||
//----------------------
|
||
// Подключение библиотек
|
||
//----------------------
|
||
|
||
const Schema = require("validate"); //Схемы валидации
|
||
const { OutQueueProcessorTask } = require("./obj_out_queue_processor"); //Схемы валидации объектов обработчика исходящих сообщений
|
||
|
||
//------------
|
||
// Тело модуля
|
||
//------------
|
||
|
||
//Валидация данных сообщения очереди
|
||
const validateBuffer = val => {
|
||
//Либо null
|
||
if (val === null) {
|
||
return true;
|
||
} else {
|
||
//Либо Buffer
|
||
return val instanceof Buffer;
|
||
}
|
||
};
|
||
|
||
//------------------
|
||
// Интерфейс модуля
|
||
//------------------
|
||
|
||
//Схема валидации параметров функции отправки ошибки обработки
|
||
exports.sendErrorResult = new Schema({
|
||
//Сообщение об ошибке
|
||
sMessage: {
|
||
type: String,
|
||
required: true,
|
||
message: {
|
||
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - String)`,
|
||
required: path => `Не указан идентификатор сервиса (${path})`
|
||
}
|
||
}
|
||
});
|
||
|
||
//Схема валидации параметров функции отправки успеха обработки
|
||
exports.sendOKResult = new Schema({
|
||
//Данные сообщения очереди обмена
|
||
blMsg: {
|
||
use: { validateBuffer },
|
||
required: true,
|
||
message: {
|
||
validateBuffer: path =>
|
||
`Данные сообщения очереди обмена (${path}) имеют некорректный тип данных (ожидалось - null или Buffer)`,
|
||
required: path => `Не указаны данные сообщения очереди обмена (${path})`
|
||
}
|
||
},
|
||
//Данные ответа сообщения очереди обмена
|
||
blResp: {
|
||
use: { validateBuffer },
|
||
required: true,
|
||
message: {
|
||
validateBuffer: path =>
|
||
`Данные ответа сообщения очереди обмена (${path}) имеют некорректный тип данных (ожидалось - null или Buffer)`,
|
||
required: path => `Не указаны данные ответа сообщения очереди обмена (${path})`
|
||
}
|
||
}
|
||
}).validator({ required: val => typeof val != "undefined" });
|
||
|
||
//Параметры функции отправки сообщения родителю без обработки
|
||
exports.sendUnChange = new Schema({
|
||
//Задача обработки
|
||
task: {
|
||
schema: OutQueueProcessorTask,
|
||
required: true,
|
||
message: {
|
||
required: path => `Не указана задача для обработки (${path})`
|
||
}
|
||
}
|
||
});
|
||
|
||
//Параметры функции обработки сообщения
|
||
exports.processTask = new Schema({
|
||
//Задача обработки
|
||
task: {
|
||
schema: OutQueueProcessorTask,
|
||
required: true,
|
||
message: {
|
||
required: path => `Не указана задача для обработки (${path})`
|
||
}
|
||
}
|
||
});
|