P8-ExchangeService/models/prms_out_queue_processor.js

92 lines
3.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Сервис интеграции ПП Парус 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})`
}
}
});