Расширение схемы обмена с родительским процессом - передаём любые статусы, изменённое тело сообщения
This commit is contained in:
parent
04f218bc84
commit
5b35c48e0a
@ -8,9 +8,45 @@
|
||||
//----------------------
|
||||
|
||||
const Schema = require("validate"); //Схемы валидации
|
||||
const { Queue } = require("./obj_queue"); //Схема валидации сообщения очереди обмена
|
||||
const { Service } = require("./obj_service"); //Схема валидации сервиса
|
||||
const { NQUEUE_EXEC_STATE_APP_OK, NQUEUE_EXEC_STATE_APP_ERR } = require("./obj_queue"); //Схема валидации сообщения очереди обмена
|
||||
const { ServiceFunction } = require("./obj_service_function"); //Схема валидации функции сервиса
|
||||
const {
|
||||
NQUEUE_EXEC_STATE_INQUEUE,
|
||||
NQUEUE_EXEC_STATE_APP,
|
||||
NQUEUE_EXEC_STATE_APP_OK,
|
||||
NQUEUE_EXEC_STATE_APP_ERR,
|
||||
NQUEUE_EXEC_STATE_DB,
|
||||
NQUEUE_EXEC_STATE_DB_OK,
|
||||
NQUEUE_EXEC_STATE_DB_ERR,
|
||||
NQUEUE_EXEC_STATE_OK,
|
||||
NQUEUE_EXEC_STATE_ERR
|
||||
} = require("./obj_queue"); //Схема валидации сообщения очереди обмена
|
||||
|
||||
//------------
|
||||
// Тело модуля
|
||||
//------------
|
||||
|
||||
//Валидация данных сообщения очереди
|
||||
const validateBuffer = val => {
|
||||
//Либо null
|
||||
if (val === null) {
|
||||
return true;
|
||||
} else {
|
||||
//Либо данные для формирования Buffer
|
||||
const s = new Schema({
|
||||
type: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
data: {
|
||||
type: Array,
|
||||
required: true
|
||||
}
|
||||
});
|
||||
const errs = s.validate(val, { strip: false });
|
||||
return errs.length == 0;
|
||||
}
|
||||
};
|
||||
|
||||
//------------------
|
||||
// Интерфейс модуля
|
||||
@ -18,22 +54,76 @@ const { NQUEUE_EXEC_STATE_APP_OK, NQUEUE_EXEC_STATE_APP_ERR } = require("./obj_q
|
||||
|
||||
//Схема валидации задачи обработчику очереди исходящих сообщений
|
||||
exports.OutQueueProcessorTask = new Schema({
|
||||
//Запись журнала обмена для обработки
|
||||
queue: {
|
||||
//schema: Queue,
|
||||
required: false,
|
||||
//Идентификатор записи журнала обмена для обработки
|
||||
nQueueId: {
|
||||
type: Number,
|
||||
required: true,
|
||||
message: {
|
||||
required: "Не указано обрабатываемое сообщение очереди (queue)"
|
||||
type: path =>
|
||||
`Идентификатор записи журнала обмена для обработки (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||
required: path => `Не указан идентификатор записи журнала обмена для обработки (${path})`
|
||||
}
|
||||
},
|
||||
//Cервис
|
||||
service: {
|
||||
//schema: Service,
|
||||
required: false,
|
||||
//Состояние обработки сообщения очереди обмена
|
||||
nExecState: {
|
||||
type: Number,
|
||||
enum: [
|
||||
NQUEUE_EXEC_STATE_INQUEUE,
|
||||
NQUEUE_EXEC_STATE_APP,
|
||||
NQUEUE_EXEC_STATE_APP_OK,
|
||||
NQUEUE_EXEC_STATE_APP_ERR,
|
||||
NQUEUE_EXEC_STATE_DB,
|
||||
NQUEUE_EXEC_STATE_DB_OK,
|
||||
NQUEUE_EXEC_STATE_DB_ERR,
|
||||
NQUEUE_EXEC_STATE_OK,
|
||||
NQUEUE_EXEC_STATE_ERR
|
||||
],
|
||||
required: true,
|
||||
message: {
|
||||
required: "Не указан сервис для обработки сообщения очереди (service)"
|
||||
type: path =>
|
||||
`Состояние обработки сообщения очереди обмена (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||
enum: path => `Значение состояния обработки сообщения очереди обмена (${path}) не поддерживается`,
|
||||
required: path => `Не указано состояние обработки сообщения очереди обмена (${path})`
|
||||
}
|
||||
},
|
||||
//Данные сообщения очереди обмена
|
||||
blMsg: {
|
||||
use: { validateBuffer },
|
||||
required: true,
|
||||
message: {
|
||||
validateBuffer: path =>
|
||||
`Данные записи журнала обмена для обработки (${path}) имеют некорректный тип данных (ожидалось - null или {type: String, data: Array})`,
|
||||
required: path => `Не указаны данные сообщения очереди обмена (${path})`
|
||||
}
|
||||
},
|
||||
//Данные ответа на сообщение очереди обмена
|
||||
blResp: {
|
||||
use: { validateBuffer },
|
||||
required: true,
|
||||
message: {
|
||||
validateBuffer: path =>
|
||||
`Данные ответа (${path}) имеют некорректный тип данных (ожидалось - null или {type: String, data: Array})`,
|
||||
required: path => `Не указаны данные ответа (${path})`
|
||||
}
|
||||
},
|
||||
//Cервис-обработчик
|
||||
service: {
|
||||
schema: Service,
|
||||
required: true,
|
||||
message: {
|
||||
required: path => `Не указан сервис для обработки сообщения очереди (${path})`
|
||||
}
|
||||
},
|
||||
//Функция сервиса-обработчика
|
||||
function: {
|
||||
schema: ServiceFunction,
|
||||
required: true,
|
||||
message: {
|
||||
required: path => `Не указана функция сервиса для обработки сообщения очереди (${path})`
|
||||
}
|
||||
}
|
||||
}).validator({
|
||||
required: val => typeof val != "undefined"
|
||||
});
|
||||
|
||||
//Схема валидации ответа обработчика очереди исходящих сообщений
|
||||
@ -41,13 +131,23 @@ exports.OutQueueProcessorTaskResult = new Schema({
|
||||
//Состояние обработки сообщения очереди обмена
|
||||
nExecState: {
|
||||
type: Number,
|
||||
enum: [NQUEUE_EXEC_STATE_APP_OK, NQUEUE_EXEC_STATE_APP_ERR],
|
||||
enum: [
|
||||
NQUEUE_EXEC_STATE_INQUEUE,
|
||||
NQUEUE_EXEC_STATE_APP,
|
||||
NQUEUE_EXEC_STATE_APP_OK,
|
||||
NQUEUE_EXEC_STATE_APP_ERR,
|
||||
NQUEUE_EXEC_STATE_DB,
|
||||
NQUEUE_EXEC_STATE_DB_OK,
|
||||
NQUEUE_EXEC_STATE_DB_ERR,
|
||||
NQUEUE_EXEC_STATE_OK,
|
||||
NQUEUE_EXEC_STATE_ERR
|
||||
],
|
||||
required: true,
|
||||
message: {
|
||||
type:
|
||||
"Состояние обработки сообщения очереди обмена (nExecState) имеет некорректный тип данных (ожидалось - Number)",
|
||||
enum: "Значение состояния обработки сообщения очереди обмена (nExecState) не поддерживается",
|
||||
required: "Не указано состояние обработки сообщения очереди обмена (nExecState)"
|
||||
type: path =>
|
||||
`Состояние обработки сообщения очереди обмена (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||
enum: path => `Значение состояния обработки сообщения очереди обмена (${path}) не поддерживается`,
|
||||
required: path => `Не указано состояние обработки сообщения очереди обмена (${path})`
|
||||
}
|
||||
},
|
||||
//Информация от обработчика сообщения очереди обмена
|
||||
@ -55,18 +155,31 @@ exports.OutQueueProcessorTaskResult = new Schema({
|
||||
type: String,
|
||||
required: false,
|
||||
message: {
|
||||
type:
|
||||
"Информация от обработчика сообщения очереди обмена (sExecMsg) имеет некорректный тип данных (ожидалось - String)",
|
||||
required: "Не указана информация от обработчика сообщения очереди обмена (sExecMsg)"
|
||||
type: path =>
|
||||
`Информация от обработчика сообщения очереди обмена (${path}) имеет некорректный тип данных (ожидалось - String)`,
|
||||
required: path => `Не указана информация от обработчика сообщения очереди обмена (${path})`
|
||||
}
|
||||
},
|
||||
//Данные ответа
|
||||
blResp: {
|
||||
type: Buffer,
|
||||
required: false,
|
||||
//Данные сообщения очереди обмена
|
||||
blMsg: {
|
||||
use: { validateBuffer },
|
||||
required: true,
|
||||
message: {
|
||||
type: "Данные ответа сообщения очереди обмена (blResp) имеют некорректный тип данных (ожидалось - Buffer)",
|
||||
required: "Не указаны данные ответа сообщения очереди обмена (blResp)"
|
||||
validateBuffer: path =>
|
||||
`Данные сообщения очереди обмена (${path}) имеют некорректный тип данных (ожидалось - null или {type: String, data: Array})`,
|
||||
required: path => `Не указаны данные сообщения очереди обмена (${path})`
|
||||
}
|
||||
},
|
||||
//Данные ответа сообщения очереди обмена
|
||||
blResp: {
|
||||
use: { validateBuffer },
|
||||
required: true,
|
||||
message: {
|
||||
validateBuffer: path =>
|
||||
`Данные ответа сообщения очереди обмена (${path}) имеют некорректный тип данных (ожидалось - null или {type: String, data: Array})`,
|
||||
required: path => `Не указаны данные ответа сообщения очереди обмена (${path})`
|
||||
}
|
||||
}
|
||||
}).validator({
|
||||
required: val => typeof val != "undefined"
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user