diff --git a/models/obj_log.js b/models/obj_log.js new file mode 100644 index 0000000..aefdcba --- /dev/null +++ b/models/obj_log.js @@ -0,0 +1,153 @@ +/* + Сервис интеграции ПП Парус 8 с WEB API + Модели данных: описатель записи журнала работы сервиса обмена +*/ + +//---------------------- +// Подключение библиотек +//---------------------- + +const Schema = require("validate"); //Схемы валидации + +//---------- +// Константы +//---------- + +//Состояния записей журнала работы +const NLOG_STATE_INF = 0; //Информация +const NLOG_STATE_WRN = 1; //Предупреждение +const NLOG_STATE_ERR = 2; //Ошибка +const SLOG_STATE_INF = "INF"; //Информация (строковый код) +const SLOG_STATE_WRN = "WRN"; //Предупреждение (строковый код) +const SLOG_STATE_ERR = "ERR"; //Ошибка (строковый код) + +//------------------ +// Интерфейс модуля +//------------------ + +//Константы +exports.NLOG_STATE_INF = NLOG_STATE_INF; +exports.NLOG_STATE_WRN = NLOG_STATE_WRN; +exports.NLOG_STATE_ERR = NLOG_STATE_ERR; +exports.SLOG_STATE_INF = SLOG_STATE_INF; +exports.SLOG_STATE_WRN = SLOG_STATE_WRN; +exports.SLOG_STATE_ERR = SLOG_STATE_ERR; + +//Схема валидации записи журнала работы сервиса обмена +exports.Log = new Schema({ + //Идентификатор записи журнала работы сервиса обмена + nId: { + type: Number, + required: true, + message: { + type: + "Идентификатор записи журнала работы сервиса обмена (nId) имеет некорректный тип данных (ожидалось - Number)", + required: "Не указан идентификатор записи журнала работы сервиса обмена (nId)" + } + }, + //Дата записи журнала работы сервиса обмена + dLogDate: { + type: Date, + required: true, + message: { + type: + "Дата записи журнала работы сервиса обмена (dLogDate) имеет некорректный тип данных (ожидалось - Date)", + required: "Не указана дата записи журнала работы сервиса обмена (dLogDate)" + } + }, + //Дата записи журнала работы сервиса обмена (строковое представление) + sLogDate: { + type: String, + required: true, + message: { + type: + "Строковое представление даты записи журнала работы сервиса обмена (sLogDate) имеет некорректный тип данных (ожидалось - String)", + required: "Не указано строковое представление даты записи журнала работы сервиса обмена (sLogDate)" + } + }, + //Состояние записи журнала работы сервиса обмена + nLogState: { + type: Number, + enum: [NLOG_STATE_INF, NLOG_STATE_WRN, NLOG_STATE_ERR], + required: true, + message: { + type: + "Состояние записи журнала работы сервиса обмена (nLogState) имеет некорректный тип данных (ожидалось - Number)", + enum: "Значение состояния записи журнала работы сервиса обмена (nLogState) не поддерживается", + required: "Не указано состояние записи журнала работы сервиса обмена (nLogState)" + } + }, + //Состояние записи журнала работы сервиса обмена (строковый код) + sLogState: { + type: String, + enum: [SLOG_STATE_INF, SLOG_STATE_WRN, SLOG_STATE_ERR], + required: true, + message: { + type: + "Строковый код состояния записи журнала работы сервиса обмена (sLogState) имеет некорректный тип данных (ожидалось - String)", + enum: + "Значение строкового кода состояния записи журнала работы сервиса обмена (sLogState) не поддерживается", + required: "Не указан строковый код состояния записи журнала работы сервиса обмена (sLogState)" + } + }, + //Сообщение записи журнала работы сервиса обмена + sMsg: { + type: String, + required: false, + message: { + type: + "Сообщение записи журнала работы сервиса обмена (sMsg) имеет некорректный тип данных (ожидалось - String)", + required: "Не указано сообщение записи журнала работы сервиса обмена (sMsg)" + } + }, + //Идентификатор сервиса записи журнала работы сервиса обмена + nServiceId: { + type: Number, + required: false, + message: { + type: + "Идентификатор сервиса записи журнала работы сервиса обмена (nServiceId) имеет некорректный тип данных (ожидалось - Number)", + required: "Не указан идентификатор сервиса записи журнала работы сервиса обмена (nServiceId)" + } + }, + //Код сервиса записи журнала работы сервиса обмена + sServiceCode: { + type: String, + required: false, + message: { + type: + "Код сервиса записи журнала работы сервиса обмена (sServiceCode) имеет некорректный тип данных (ожидалось - String)", + required: "Не указан код сервиса записи журнала работы сервиса обмена (sServiceCode)" + } + }, + //Идентификатор функции сервиса записи журнала работы сервиса обмена + nServiceFnId: { + type: Number, + required: false, + message: { + type: + "Идентификатор функции сервиса записи журнала работы сервиса обмена (nServiceFnId) имеет некорректный тип данных (ожидалось - Number)", + required: "Не указан идентификатор функции сервиса записи журнала работы сервиса обмена (nServiceFnId)" + } + }, + //Код функции сервиса записи журнала работы сервиса обмена + sServiceFnCode: { + type: String, + required: false, + message: { + type: + "Код функции сервиса записи журнала работы сервиса обмена (sServiceFnCode) имеет некорректный тип данных (ожидалось - String)", + required: "Не указан код функции сервиса записи журнала работы сервиса обмена (sServiceFnCode)" + } + }, + //Идентификатор сообщения очереди обмена записи журнала работы сервиса обмена + nQueueId: { + type: Number, + required: false, + message: { + type: + "Идентификатор сообщения очереди обмена записи журнала работы сервиса обмена (nQueueId) имеет некорректный тип данных (ожидалось - Number)", + required: "Не указан идентификатор сообщения очереди обмена записи журнала работы сервиса обмена (nQueueId)" + } + } +}); diff --git a/models/obj_logs.js b/models/obj_logs.js new file mode 100644 index 0000000..364a9bf --- /dev/null +++ b/models/obj_logs.js @@ -0,0 +1,41 @@ +/* + Сервис интеграции ПП Парус 8 с WEB API + Модели данных: описатель списка записей журнала работы сервиса обмена +*/ + +//---------------------- +// Подключение библиотек +//---------------------- + +const Schema = require("validate"); //Схемы валидации +const { Log } = require("./obj_log"); //Схема валидации записи журнала работы сервиса обмена + +//------------ +// Тело модуля +//------------ + +//Описатель схемы валидации списка сервисов +const defLogs = (bRequired, sName) => { + return { + type: Array, + required: bRequired, + each: Log, + message: { + type: + "Список записей журнала работы сервиса обмена (" + + sName + + ") имеет некорректный тип данных (ожидалось - Array)", + required: "Не указан список записей журнала работы сервиса обмена (" + sName + ")" + } + }; +}; + +//------------------ +// Интерфейс модуля +//------------------ + +//Описатель схемы валидации списка сервисов +exports.defLogs = defLogs; + +//Схема валидации списка сервисов +exports.Logs = new Schema({ logs: defLogs(true, "logs") });