Схема валидации записи журанала работы сервиса и списка записей журнала работы сервиса

This commit is contained in:
Mikhail Chechnev 2018-11-25 20:47:03 +03:00
parent dcaf609a0f
commit 0b4dbfa3b0
2 changed files with 194 additions and 0 deletions

153
models/obj_log.js Normal file
View File

@ -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)"
}
}
});

41
models/obj_logs.js Normal file
View File

@ -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") });