P8-ExchangeService/models/prms_out_queue_processor.js

97 lines
3.9 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 { Queue } = require("./obj_queue"); //Схема валидации позиции очереди
const { OutQueueProcessorTask } = require("./obj_out_queue_processor"); //Схемы валидации объектов обработчика исходящих сообщений
const { Service } = require("./obj_service"); //Схема валидации сервиса
const { ServiceFunction } = require("./obj_service_function"); //Схема валидации функции сервиса
//------------------
// Интерфейс модуля
//------------------
//Схема валидации параметров функции отправки ошибки обработки
exports.sendErrorResult = new Schema({
//Сообщение об ошибке
sMessage: {
type: String,
required: true,
message: {
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - String)`,
required: path => `Не указан идентификатор сервиса (${path})`
}
}
});
//Схема валидации параметров функции отправки успеха обработки
exports.sendOKResult = new Schema({
//Контекст работы сервиса
context: {
type: Object,
required: true,
message: {
type: path => `Контекст работы сервиса (${path}) имеет некорректный тип данных (ожидалось - Object)`,
required: path => `Не указан контекст работы сервиса (${path})`
}
}
});
//Схема валидации параметров функции обработчки сообщения сервером приложений
exports.appProcess = new Schema({
//Обрабатываемое сообщение очереди
queue: {
schema: Queue,
required: true,
message: {
required: path => `Не указано обрабатываемое сообщение очреди (${path})`
}
},
//Cервис-обработчик
service: {
schema: Service,
required: true,
message: {
required: path => `Не указан сервис для обработки сообщения очереди (${path})`
}
},
//Функция сервиса-обработчика
function: {
schema: ServiceFunction,
required: true,
message: {
required: path => `Не указана функция сервиса для обработки сообщения очереди (${path})`
}
}
});
//Схема валидации параметров функции обработчки сообщения сервером БД
exports.dbProcess = new Schema({
//Обрабатываемое сообщение очереди
queue: {
schema: Queue,
required: true,
message: {
required: path => `Не указано обрабатываемое сообщение очреди (${path})`
}
}
});
//Параметры функции обработки сообщения
exports.processTask = new Schema({
//Задача обработки
task: {
schema: OutQueueProcessorTask,
required: true,
message: {
required: path => `Не указана задача для обработки (${path})`
}
}
});