From 0d183b0ddc8d6c950d84b6baf2cf4a320db11fa1 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Mon, 10 Dec 2018 20:07:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B8=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BE=D0=BC=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/utils.js | 4 ++-- models/obj_service_function.js | 23 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/core/utils.js b/core/utils.js index 0c2560c..604cc85 100644 --- a/core/utils.js +++ b/core/utils.js @@ -87,7 +87,7 @@ const makeErrorText = e => { return sErr; }; -//Считывание наименования модуля-обработчика сервера приложений (ожидаемый формат - <МОДУЛЬ>/<ФУНКЦИЯ>) +//Считывание наименования модуля-обработчика сервера приложений (ожидаемый формат - <МОДУЛЬ>.js/<ФУНКЦИЯ>) const getAppSrvModuleName = sAppSrv => { //Если есть что разбирать if (sAppSrv) { @@ -111,7 +111,7 @@ const getAppSrvModuleName = sAppSrv => { } }; -//Считывание наименования функции модуля-обработчика сервера приложений (ожидаемый формат - <МОДУЛЬ>/<ФУНКЦИЯ>) +//Считывание наименования функции модуля-обработчика сервера приложений (ожидаемый формат - <МОДУЛЬ>.js/<ФУНКЦИЯ>) const getAppSrvFunctionName = sAppSrv => { //Если есть что разбирать if (sAppSrv) { diff --git a/models/obj_service_function.js b/models/obj_service_function.js index 75db60b..06c5e15 100644 --- a/models/obj_service_function.js +++ b/models/obj_service_function.js @@ -43,6 +43,19 @@ const SRETRY_SCHEDULE_DAY = "DAY"; //Сутки (строковый код) const SRETRY_SCHEDULE_WEEK = "WEEK"; //Неделя (строковый код) const SRETRY_SCHEDULE_MONTH = "MONTH"; //Месяц (строковый код) +//------------- +// Тело модуля +//------------- + +//Функция проверки наименования обработчика со стороны сервера приложений +const validateAppSrvFn = val => { + if (val) { + let r = /^[a-z0-9_.-]+(.js)\/[a-z0-9_.-]+$/; + return r.test(val.toLowerCase()); + } + return true; +}; + //------------------ // Интерфейс модуля //------------------ @@ -224,22 +237,28 @@ exports.ServiceFunction = new Schema({ sAppSrvBefore: { type: String, required: false, + use: { validateAppSrvFn }, message: { type: "Обработчик сообщения 'до' на строне сервера приложений для функции сервиса (sAppSrvBefore) имеет некорректный тип данных (ожидалось - String)", required: - "Не указан обработчик сообщения 'до' на строне сервера приложений для функции сервиса (sAppSrvBefore)" + "Не указан обработчик сообщения 'до' на строне сервера приложений для функции сервиса (sAppSrvBefore)", + validateAppSrvFn: + "Обработчик сообщения 'до' на строне сервера приложений для функции сервиса (sAppSrvBefore) имеет некорректный формат, ожидалось: <МОДУЛЬ>.js/<ФУНКЦИЯ>" } }, //Обработчик сообщения "после" на строне сервера приложений для функции сервиса sAppSrvAfter: { type: String, required: false, + use: { validateAppSrvFn }, message: { type: "Обработчик сообщения 'после' на строне сервера приложений для функции сервиса (sAppSrvAfter) имеет некорректный тип данных (ожидалось - String)", required: - "Не указан обработчик сообщения 'после' на строне сервера приложений для функции сервиса (sAppSrvBefore)" + "Не указан обработчик сообщения 'после' на строне сервера приложений для функции сервиса (sAppSrvAfter)", + validateAppSrvFn: + "Обработчик сообщения 'после' на строне сервера приложений для функции сервиса (sAppSrvBefore) имеет некорректный формат, ожидалось: <МОДУЛЬ>.js/<ФУНКЦИЯ>" } } });