P8-ExchangeService/models/obj_queue.js

255 lines
14 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 NQUEUE_EXEC_STATE_INQUEUE = 0; //Поставлено в очередь
const NQUEUE_EXEC_STATE_APP = 1; //Обрабатывается сервером приложений
const NQUEUE_EXEC_STATE_APP_OK = 2; //Успешно обработано сервером приложений
const NQUEUE_EXEC_STATE_APP_ERR = 3; //Ошибка обработки сервером приложений
const NQUEUE_EXEC_STATE_DB = 4; //Обрабатывается СУБД
const NQUEUE_EXEC_STATE_DB_OK = 5; //Успешно обработано СУБД
const NQUEUE_EXEC_STATE_DB_ERR = 6; //Ошибка обработки СУБД
const NQUEUE_EXEC_STATE_OK = 7; //Обработано успешно
const NQUEUE_EXEC_STATE_ERR = 8; //Обработано с ошибками
const SQUEUE_EXEC_STATE_INQUEUE = "INQUEUE"; //Поставлено в очередь (строковый код)
const SQUEUE_EXEC_STATE_APP = "APP"; //Обрабатывается сервером приложений (строковый код)
const SQUEUE_EXEC_STATE_APP_OK = "APP_OK"; //Успешно обработано сервером приложений (строковый код)
const SQUEUE_EXEC_STATE_APP_ERR = "APP_ERR"; //Ошибка обработки сервером приложений (строковый код)
const SQUEUE_EXEC_STATE_DB = "DB"; //Обрабатывается СУБД (строковый код)
const SQUEUE_EXEC_STATE_DB_OK = "DB_OK"; //Успешно обработано СУБД (строковый код)
const SQUEUE_EXEC_STATE_DB_ERR = "DB_ERR"; //Ошибка обработки СУБД (строковый код)
const SQUEUE_EXEC_STATE_OK = "OK"; //Обработано успешно (строковый код)
const SQUEUE_EXEC_STATE_ERR = "ERR"; //Обработано с ошибками (строковый код)
//------------------
// Интерфейс модуля
//------------------
//Константы
exports.NQUEUE_EXEC_STATE_INQUEUE = NQUEUE_EXEC_STATE_INQUEUE;
exports.NQUEUE_EXEC_STATE_APP = NQUEUE_EXEC_STATE_APP;
exports.NQUEUE_EXEC_STATE_APP_OK = NQUEUE_EXEC_STATE_APP_OK;
exports.NQUEUE_EXEC_STATE_APP_ERR = NQUEUE_EXEC_STATE_APP_ERR;
exports.NQUEUE_EXEC_STATE_DB = NQUEUE_EXEC_STATE_DB;
exports.NQUEUE_EXEC_STATE_DB_OK = NQUEUE_EXEC_STATE_DB_OK;
exports.NQUEUE_EXEC_STATE_DB_ERR = NQUEUE_EXEC_STATE_DB_ERR;
exports.NQUEUE_EXEC_STATE_OK = NQUEUE_EXEC_STATE_OK;
exports.NQUEUE_EXEC_STATE_ERR = NQUEUE_EXEC_STATE_ERR;
exports.SQUEUE_EXEC_STATE_INQUEUE = SQUEUE_EXEC_STATE_INQUEUE;
exports.SQUEUE_EXEC_STATE_APP = SQUEUE_EXEC_STATE_APP;
exports.SQUEUE_EXEC_STATE_APP_OK = SQUEUE_EXEC_STATE_APP_OK;
exports.SQUEUE_EXEC_STATE_APP_ERR = SQUEUE_EXEC_STATE_APP_ERR;
exports.SQUEUE_EXEC_STATE_DB = SQUEUE_EXEC_STATE_DB;
exports.SQUEUE_EXEC_STATE_DB_OK = SQUEUE_EXEC_STATE_DB_OK;
exports.SQUEUE_EXEC_STATE_DB_ERR = SQUEUE_EXEC_STATE_DB_ERR;
exports.SQUEUE_EXEC_STATE_OK = SQUEUE_EXEC_STATE_OK;
exports.SQUEUE_EXEC_STATE_ERR = SQUEUE_EXEC_STATE_ERR;
//Схема валидации сообщения очереди обмена
exports.Queue = new Schema({
//Идентификатор сообщения очереди обмена
nId: {
type: Number,
required: true,
message: {
type: "Идентификатор сообщения очереди обмена (nId) имеет некорректный тип данных (ожидалось - Number)",
required: "Не указан идентификатор сообщения очереди обмена (nId)"
}
},
//Дата постановки сообщения в очередь обмена
dInDate: {
type: Date,
required: true,
message: {
type:
"Дата постановки сообщения в очередь обмена (dInDate) имеет некорректный тип данных (ожидалось - Date)",
required: "Не указана дата постановки сообщения в очередь обмена (dInDate)"
}
},
//Дата постановки сообщения в очередь обмена (строковое представление)
sInDate: {
type: String,
required: true,
message: {
type:
"Строковое представление даты постановки сообщения в очередь обмена (sInDate) имеет некорректный тип данных (ожидалось - String)",
required: "Не указано строковое представление даты постановки сообщения в очередь обмена (sInDate)"
}
},
//Пользователь поставивший сообщение в очередь обмена
sInAuth: {
type: String,
required: true,
message: {
type:
"Пользователь, поставивший сообщение в очередь обмена (sInAuth) имеет некорректный тип данных (ожидалось - String)",
required: "Не указан пользователь, поставивший сообщение в очередь обмена (sInAuth)"
}
},
//Идентификатор сервиса-обработчика сообщения очереди обмена
nServiceId: {
type: Number,
required: true,
message: {
type:
"Идентификатор сервиса-обработчика сообщения очереди обмена (nServiceId) имеет некорректный тип данных (ожидалось - Number)",
required: "Не указан идентификатор сервиса-обработчика сообщения очереди обмена (nServiceId)"
}
},
//Код сервиса-обработчика сообщения очереди обмена
sServiceCode: {
type: String,
required: true,
message: {
type:
"Код сервиса-обработчика сообщения очереди обмена (sServiceCode) имеет некорректный тип данных (ожидалось - String)",
required: "Не указан код сервиса-обработчика сообщения очереди обмена (sServiceCode)"
}
},
//Идентификатор функции сервиса-обработчика сообщения очереди обмена
nServiceFnId: {
type: Number,
required: true,
message: {
type:
"Идентификатор функции сервиса-обработчика сообщения очереди обмена (nServiceFnId) имеет некорректный тип данных (ожидалось - Number)",
required: "Не указан идентификатор функции сервиса-обработчика сообщения очереди обмена (nServiceFnId)"
}
},
//Код функции сервиса-обработчика сообщения очереди обмена
sServiceFnCode: {
type: String,
required: true,
message: {
type:
"Код функции сервиса-обработчика сообщения очереди обмена (sServiceFnCode) имеет некорректный тип данных (ожидалось - String)",
required: "Не указан код функции сервиса-обработчика сообщения очереди обмена (sServiceFnCode)"
}
},
//Дата обработки сообщения очереди обмена
dExecDate: {
type: Date,
required: false,
message: {
type:
"Дата обработки сообщения очереди обмена (dExecDate) имеет некорректный тип данных (ожидалось - Date)",
required: "Не указана дата обработки сообщения очереди обмена (dExecDate)"
}
},
//Дата обработки сообщения очереди обмена (строковое представление)
sExecDate: {
type: String,
required: false,
message: {
type:
"Строковое представление даты обработки сообщения очереди обмена (sExecDate) имеет некорректный тип данных (ожидалось - String)",
required: "Не указано строковое представление даты обработки сообщения очереди обмена (sExecDate)"
}
},
//Количество попыток обработки сообщения очереди обмена
nExecCnt: {
type: Number,
required: true,
message: {
type:
"Количество попыток обработки сообщения очереди обмена (nExecCnt) имеет некорректный тип данных (ожидалось - Number)",
required: "Не указано количество попыток обработки сообщения очереди обмена (nExecCnt)"
}
},
//Состояние обработки сообщения очереди обмена
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: {
type:
"Состояние обработки сообщения очереди обмена (nExecState) имеет некорректный тип данных (ожидалось - Number)",
enum: "Значение состояния обработки сообщения очереди обмена (nExecState) не поддерживается",
required: "Не указано состояние обработки сообщения очереди обмена (nExecState)"
}
},
//Состояние обработки сообщения очереди обмена (строковый код)
sExecState: {
type: String,
enum: [
SQUEUE_EXEC_STATE_INQUEUE,
SQUEUE_EXEC_STATE_APP,
SQUEUE_EXEC_STATE_APP_OK,
SQUEUE_EXEC_STATE_APP_ERR,
SQUEUE_EXEC_STATE_DB,
SQUEUE_EXEC_STATE_DB_OK,
SQUEUE_EXEC_STATE_DB_ERR,
SQUEUE_EXEC_STATE_OK,
SQUEUE_EXEC_STATE_ERR
],
required: true,
message: {
type:
"Строковый код состояния обработки сообщения очереди обмена (sExecState) имеет некорректный тип данных (ожидалось - String)",
enum:
"Значение строкового кода состояния обработки сообщения очереди обмена (sExecState) не поддерживается",
required: "Не указан строковый код состояния обработки сообщения очереди обмена (sExecState)"
}
},
//Информация от обработчика сообщения очереди обмена
sExecMsg: {
type: String,
required: false,
message: {
type:
"Информация от обработчика сообщения очереди обмена (sExecMsg) имеет некорректный тип данных (ожидалось - String)",
required: "Не указана информация от обработчика сообщения очереди обмена (sExecMsg)"
}
},
//Данные сообщения очереди обмена
blMsg: {
type: Buffer,
required: false,
message: {
type: "Данные сообщения очереди обмена (blMsg) имеют некорректный тип данных (ожидалось - Buffer)",
required: "Не указаны данные сообщения очереди обмена (blMsg)"
}
},
//Данные ответа сообщения очереди обмена
blResp: {
type: Buffer,
required: false,
message: {
type: "Данные ответа сообщения очереди обмена (blResp) имеют некорректный тип данных (ожидалось - Buffer)",
required: "Не указаны данные ответа сообщения очереди обмена (blResp)"
}
},
//Идентификатор связанного сообщения очереди обмена
nQueueId: {
type: Number,
required: false,
message: {
type:
"Идентификатор связанного сообщения очереди обмена (nQueueId) имеет некорректный тип данных (ожидалось - Number)",
required: "Не указан идентификатор связанного сообщения очереди обмена (nQueueId)"
}
}
});