Завершенная схема валидации подключаемого модуля взаимодействия с БД

This commit is contained in:
Mikhail Chechnev 2018-11-22 21:08:46 +03:00
parent 9525bb8609
commit d062a0d32e
3 changed files with 110 additions and 63 deletions

View File

@ -1,60 +0,0 @@
/*
Сервис интеграции ПП Парус 8 с WEB API
Модели данных: Описатель интерфейса подключаемого модуля взаимодействия с БД
*/
//----------------------
// Подключение библиотек
//----------------------
const Schema = require("validate"); //Схемы валидации
//------------------
// Интерфейс модуля
//------------------
/*
"getServiceFunctions",
"log",
"getQueueOutgoing",
"putQueueIncoming",
"setQueueState"
*/
const validateFunctionType = val => {
let sFn = {}.toString.call(val);
console.log(sFn);
return sFn === "[object Function]" || sFn === "[object AsyncFunction]";
};
//Схема валидации подключаемого модуля взаимодействия с БД
exports.dbConnectorModule = new Schema({
//Функция подключения к БД
connect: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция подключения к БД (connect) имеет неверный формат",
required: "Не реализована функция подключения к БД (connect)"
}
},
//Функция отключения от БД
disconnect: {
type: Function,
required: true,
message: {
type: "Функция отключения от БД (disconnect) имеет неверный формат",
required: "Не реализована функция отключения от БД (disconnect)"
}
},
//Функция получения данных о сервисах
getServices: {
type: Function,
required: true,
message: {
type: "Функция получения данных сервисов (getServices) имеет неверный формат",
required: "Не реализована функция получения данных сервисов (getServices)"
}
}
});

View File

@ -0,0 +1,102 @@
/*
Сервис интеграции ПП Парус 8 с WEB API
Модели данных: Описатель интерфейса подключаемого модуля взаимодействия с БД
*/
//----------------------
// Подключение библиотек
//----------------------
const Schema = require("validate"); //Схемы валидации
//------------
// Тело модуля
//------------
const validateFunctionType = val => {
let sFn = {}.toString.call(val);
return sFn === "[object Function]" || sFn === "[object AsyncFunction]";
};
//------------------
// Интерфейс модуля
//------------------
//Схема валидации подключаемого модуля взаимодействия с БД
exports.dbConnectorModule = new Schema({
//Подключение к БД
connect: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция подключения к БД (connect) имеет неверный формат",
required: "Не реализована функция подключения к БД (connect)"
}
},
//Отключение от БД
disconnect: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция отключения от БД (disconnect) имеет неверный формат",
required: "Не реализована функция отключения от БД (disconnect)"
}
},
//Получение списка сервисов
getServices: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция получения списка сервисов (getServices) имеет неверный формат",
required: "Не реализована функция получения списка сервисов (getServices)"
}
},
//Получения списка функций сервиса
getServiceFunctions: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType:
"Функция получения списка функций сервиса (getServiceFunctions) имеет неверный формат",
required: "Не реализована функция получения списка функций сервиса (getServiceFunctions)"
}
},
//Протоколирование работы сервиса
log: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция протоколирования работы сервиса (log) имеет неверный формат",
required: "Не реализована функция протоколирования работы сервиса (log)"
}
},
//Считывание записей исходящих сообщений очереди
getQueueOutgoing: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType:
"Функция считывания записей исходящих сообщений очереди (getQueueOutgoing) имеет неверный формат",
required: "Не реализована функция считывания записей исходящих сообщений очереди (getQueueOutgoing)"
}
},
//Добавление входящего сообщения очереди
putQueueIncoming: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType:
"Функция добавления входящего сообщения очереди (putQueueIncoming) имеет неверный формат",
required: "Не реализована функция добавления входящего сообщения очереди (putQueueIncoming)"
}
},
//Уствновка состояния записи очереди
setQueueState: {
use: { validateFunctionType },
required: true,
message: {
validateFunctionType: "Функция уствновки состояния записи очереди (setQueueState) имеет неверный формат",
required: "Не реализована функция уствновки состояния записи очереди (setQueueState)"
}
}
});

11
test.js
View File

@ -6,7 +6,7 @@
require("module-alias/register");
const srvModel = require("./models/obj_service"); //Модель данных сервиса
const dbConnectorModel = require("./models/prms_db_connector"); //Модель данных сервиса
const dbConnectorInterfaceModel = require("./models/interface_db_connector_module"); //Интерфейс модуля взаимодействия с БД
const dbConnectorInterfaceModel = require("./models/intf_db_connector_module"); //Интерфейс модуля взаимодействия с БД
const utl = require("./core/utils"); //Вспомогательные функции
const db = require("./core/db_connector"); //Взаимодействие с БД
const cfg = require("./config"); //Настройки сервера приложений
@ -20,8 +20,13 @@ let a = utl.validateObject(
);
console.log(a);
let b = utl.validateObject(pDB, dbConnectorInterfaceModel.dbConnectorModule);
console.log(b);
let b = utl.validateObject(
pDB,
dbConnectorInterfaceModel.dbConnectorModule,
"Пользовательский модуль подключения к БД"
);
if (b) console.log(b);
else console.log("Нет ошибок в модуле");
/*
const errors = srvModel.schema.validate({ nId: 123, sCode: "", nSrvType: "", sSrvType: "" });
console.log(errors);