Рефакторинг по замечаниям Sonarqube

- Уменьшил когнитивную сложность процедуры обработки команд бота
- Привел общий модуль регламента к требуемому формату
This commit is contained in:
2025-06-26 18:06:29 +03:00
parent ddb0c43e97
commit 69b0fc406a
4 changed files with 45 additions and 33 deletions

View File

@@ -7,36 +7,10 @@
Для каждого ОбновлениеТелеграм Из МассивОбновленийТелеграм Цикл
ТелеграмОбщегоНазначения.СохранитьСообщениеВБазу(ОбновлениеТелеграм);
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
Если ОбновлениеТелеграм.Свойство("ИдСообщения") Тогда
Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_on" Тогда
ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_off" Тогда
ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/status" Тогда
ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
КонецЕсли;
ОбработатьСообщение(ОбновлениеТелеграм)
ИначеЕсли ОбновлениеТелеграм.Свойство("ИдКоллбэка") <> Неопределено Тогда
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.GetStatus)) Тогда
ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата);
КонецЕсли;
ОбработатьКоллбэк(ОбновлениеТелеграм);
КонецЕсли;
КонецЦикла;
@@ -46,6 +20,44 @@
#Область СлужебныеПроцедурыИФункции
Процедура ОбработатьСообщение(ОбновлениеТелеграм)
ДанныеПользователя = РаботаСОбновлениямиВызовСервера.ДанныеПользователя(ОбновлениеТелеграм.ИдЧата);
Если ОбновлениеТелеграм.Сообщение.text = "/start" Тогда
ОбработатьКомандуСтарт(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/subscribe" Тогда
ОбработатьКомандуПодписки(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/add" Тогда
ОбработатьКомандуДобавитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/delete" Тогда
ОбработатьКомандуУдалитьКонфигурацию(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_on" Тогда
ОбработатьКомандуВключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/notify_off" Тогда
ОбработатьКомандуВыключитьОповещения(ОбновлениеТелеграм);
ИначеЕсли ОбновлениеТелеграм.Сообщение.text = "/status" Тогда
ОбработатьКомандуСтатусКонфигурации(ОбновлениеТелеграм);
ИначеЕсли ДанныеПользователя <> Неопределено И ДанныеПользователя.СтатусДиалога =
Перечисления.ТелеграмСтатусДиалога.ОжиданиеВводаВерсии Тогда
ОбработатьВводВерсииКонфигурации(ОбновлениеТелеграм, ДанныеПользователя);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьКоллбэк(ОбновлениеТелеграм)
Данные = ОбновлениеТелеграм.ДанныеКоллбэка;
Если СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion)) Тогда
ДобавитьКонфигурациюВСписокОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.DeleteVersion)) Тогда
УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата);
ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.GetStatus)) Тогда
ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата);
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьКонфигурациюВСписокОтслеживания(ТекстСообщения, ИдЧата)
Команда = XMLСтрока(Перечисления.ВидыДанныхКоллбэков.AddVersion);

View File

@@ -13,8 +13,8 @@
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>

View File

@@ -6,7 +6,7 @@
СписокДляРассылкиУведомлений = РаботаСОбновлениямиВызовСервера.СписокНеактуальныхКонфигурацийДляУведомления();
Для Каждого ПолучательУведомления из СписокДляРассылкиУведомлений Цикл
ТекстСообщения = СообщениеОНеактуальнойВерсии(ПолучательУведомления.Конфигурации);
ТекстСообщения = ТекстСообщенияОНеактуальнойВерсии(ПолучательУведомления.Конфигурации);
ТелеграмМетодыВызовСервера.SendMessage(ПолучательУведомления.ИдЧата, ТекстСообщения,
Перечисления.ТелеграмРежимРазметки.HTML);
КонецЦикла;
@@ -17,7 +17,7 @@
#Область СлужебныеПроцедурыИФункции
Функция СообщениеОНеактуальнойВерсии(КонфигурацииДляВывода)
Функция ТекстСообщенияОНеактуальнойВерсии(КонфигурацииДляВывода)
ТекстСообщения = СтрШаблон("Следующие конфигурации имеют неактуальные версии:%1%2", Символы.ПС, Символы.ПС);

View File

@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<VERSION>20</VERSION>
<VERSION>21</VERSION>