diff --git a/models/interface_db_connector_module.js b/models/interface_db_connector_module.js deleted file mode 100644 index 3ada0d1..0000000 --- a/models/interface_db_connector_module.js +++ /dev/null @@ -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)" - } - } -}); diff --git a/models/intf_db_connector_module.js b/models/intf_db_connector_module.js new file mode 100644 index 0000000..70b96c1 --- /dev/null +++ b/models/intf_db_connector_module.js @@ -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)" + } + } +}); diff --git a/test.js b/test.js index 8c8f1b0..6938fe8 100644 --- a/test.js +++ b/test.js @@ -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);