Расширение схемы обмена с родительским процессом - передаём любые статусы, изменённое тело сообщения
This commit is contained in:
parent
04f218bc84
commit
5b35c48e0a
@ -8,9 +8,45 @@
|
|||||||
//----------------------
|
//----------------------
|
||||||
|
|
||||||
const Schema = require("validate"); //Схемы валидации
|
const Schema = require("validate"); //Схемы валидации
|
||||||
const { Queue } = require("./obj_queue"); //Схема валидации сообщения очереди обмена
|
|
||||||
const { Service } = require("./obj_service"); //Схема валидации сервиса
|
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({
|
exports.OutQueueProcessorTask = new Schema({
|
||||||
//Запись журнала обмена для обработки
|
//Идентификатор записи журнала обмена для обработки
|
||||||
queue: {
|
nQueueId: {
|
||||||
//schema: Queue,
|
type: Number,
|
||||||
required: false,
|
required: true,
|
||||||
message: {
|
message: {
|
||||||
required: "Не указано обрабатываемое сообщение очереди (queue)"
|
type: path =>
|
||||||
|
`Идентификатор записи журнала обмена для обработки (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||||
|
required: path => `Не указан идентификатор записи журнала обмена для обработки (${path})`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//Cервис
|
//Состояние обработки сообщения очереди обмена
|
||||||
service: {
|
nExecState: {
|
||||||
//schema: Service,
|
type: Number,
|
||||||
required: false,
|
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: {
|
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: {
|
nExecState: {
|
||||||
type: Number,
|
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,
|
required: true,
|
||||||
message: {
|
message: {
|
||||||
type:
|
type: path =>
|
||||||
"Состояние обработки сообщения очереди обмена (nExecState) имеет некорректный тип данных (ожидалось - Number)",
|
`Состояние обработки сообщения очереди обмена (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||||
enum: "Значение состояния обработки сообщения очереди обмена (nExecState) не поддерживается",
|
enum: path => `Значение состояния обработки сообщения очереди обмена (${path}) не поддерживается`,
|
||||||
required: "Не указано состояние обработки сообщения очереди обмена (nExecState)"
|
required: path => `Не указано состояние обработки сообщения очереди обмена (${path})`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//Информация от обработчика сообщения очереди обмена
|
//Информация от обработчика сообщения очереди обмена
|
||||||
@ -55,18 +155,31 @@ exports.OutQueueProcessorTaskResult = new Schema({
|
|||||||
type: String,
|
type: String,
|
||||||
required: false,
|
required: false,
|
||||||
message: {
|
message: {
|
||||||
type:
|
type: path =>
|
||||||
"Информация от обработчика сообщения очереди обмена (sExecMsg) имеет некорректный тип данных (ожидалось - String)",
|
`Информация от обработчика сообщения очереди обмена (${path}) имеет некорректный тип данных (ожидалось - String)`,
|
||||||
required: "Не указана информация от обработчика сообщения очереди обмена (sExecMsg)"
|
required: path => `Не указана информация от обработчика сообщения очереди обмена (${path})`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//Данные ответа
|
//Данные сообщения очереди обмена
|
||||||
blResp: {
|
blMsg: {
|
||||||
type: Buffer,
|
use: { validateBuffer },
|
||||||
required: false,
|
required: true,
|
||||||
message: {
|
message: {
|
||||||
type: "Данные ответа сообщения очереди обмена (blResp) имеют некорректный тип данных (ожидалось - Buffer)",
|
validateBuffer: path =>
|
||||||
required: "Не указаны данные ответа сообщения очереди обмена (blResp)"
|
`Данные сообщения очереди обмена (${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