/* Сервис интеграции ПП Парус 8 с WEB API Модели данных: описатели параметров функций контроллера доступности сервисов (класс ServiceAvailableController) */ //---------------------- // Подключение библиотек //---------------------- const Schema = require("validate"); //Схемы валидации const { defServices } = require("./obj_services"); //Схема валидации списка сервисов const { Notifier } = require("../core/notifier"); //Класс рассылки уведомлений const { Logger } = require("../core/logger"); //Класс для протоколирования работы const { DBConnector } = require("../core/db_connector"); //Класс взаимодействия в БД //------------------ // Интерфейс модуля //------------------ //Схема валидации параметров конструктора exports.ServiceAvailableController = new Schema({ //Объект для рассылки уведомлений notifier: { type: Notifier, required: true, message: { type: path => `Объект для рассылки уведомлений (${path}) имеет некорректный тип данных (ожидалось - Notifier)`, required: path => `Не указан объект для рассылки уведомлений (${path})` } }, //Объект для протоколирования работы logger: { type: Logger, required: true, message: { type: path => `Объект для протоколирования работы (${path}) имеет некорректный тип данных (ожидалось - Logger)`, required: path => `Не указаны объект для протоколирования работы (${path})` } }, //Объект для взаимодействия с БД dbConn: { type: DBConnector, required: true, message: { type: path => `Объект для взаимодействия с БД (${path}) имеет некорректный тип данных (ожидалось - DBConnector)`, required: path => `Не указан объект для взаимодействия с БД (${path})` } }, //Глобальный адрес прокси-сервера sProxy: { type: String, required: false, message: { type: path => `Глобальный адрес прокси-сервера (${path}) имеет некорректный тип данных (ожидалось - String)`, required: path => `Не указан глобальный адрес прокси-сервера (${path})` } } }); //Схема валидации параметров функции запуска контроллера exports.startController = new Schema({ //Список обслуживаемых сервисов services: defServices(true, "services") });