Рефакторинг общих модулей по замечаниям Sonarqube

- Добавил таймаут в вызовы http-методов
- Общие модули приведены к требованиям стандарта
This commit is contained in:
2025-06-09 17:08:13 +03:00
parent c264a7ccd8
commit 296b6a5bc3
12 changed files with 39 additions and 39 deletions

View File

@@ -2,7 +2,7 @@
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.19">
<CommonModule uuid="efcaabde-708f-4990-928d-8c4c280e6352">
<Properties>
<Name>HttpОбщегоНазначения</Name>
<Name>HttpОбщегоНазначенияВызовСервера</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
@@ -13,7 +13,7 @@
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>false</Privileged>

View File

@@ -19,7 +19,7 @@
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
РезультатЗапроса.Тело = ?(ДвоичныеДанные, Ответ.ПолучитьТелоКакДвоичныеДанные(),
HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоОтветаКакСтрока));
HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока));
Если НЕ ДвоичныеДанные И РезультатЗапроса.Тело.Получить("description") <> Неопределено Тогда
РезультатЗапроса.Описание = РезультатЗапроса.Тело["description"];
@@ -67,7 +67,7 @@
Запрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Данные.Разделитель);
Иначе
Запрос.Заголовки.Вставить("Content-Type","application/json");
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначения.ОбъектВСтрокуJson(Данные));
Запрос.УстановитьТелоИзСтроки(HttpОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(Данные));
КонецЕсли;
Иначе
Запрос.Заголовки.Вставить("Content-Type","application/json");
@@ -76,7 +76,7 @@
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
ТелоОтветаКакСтрока = Ответ.ПолучитьТелоКакСтроку();
ТелоДляОтвета = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоОтветаКакСтрока);
ТелоДляОтвета = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоОтветаКакСтрока);
Если ТелоДляОтвета <> Неопределено Тогда
РезультатЗапроса.Тело = ТелоДляОтвета;
РезультатЗапроса.Описание = ?(ТелоДляОтвета.Получить("description") <> Неопределено, ТелоДляОтвета["description"], "");
@@ -214,7 +214,7 @@
Лог.HTTPЗапрос = АдресРесурса;
Лог.Метод = Метод;
Лог.КодСостояния = КодСостояния;
Лог.HTTPОтвет = HttpОбщегоНазначения.ФорматированныйJson(ТелоОтветаКакСтрока);
Лог.HTTPОтвет = HttpОбщегоНазначенияВызовСервераорматированныйJson(ТелоОтветаКакСтрока);
Лог.Записать();
КонецПроцедуры

View File

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

View File

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

View File

@@ -13,9 +13,9 @@
ТелоЗапроса.Вставить("platformVersion", "1.1.1.1");
КонецЕсли;
Соединение = Новый HTTPСоединение("update-api.1c.ru",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Соединение = Новый HTTPСоединение("update-api.1c.ru",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, , ТелоЗапроса);
КонецФункции

View File

@@ -15,7 +15,7 @@
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>

View File

@@ -15,8 +15,8 @@
КонецЕсли;
АдресРесурса = АдресРесурсаПоИмениМетода("sendMessage");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ТелоЗапроса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ТелоЗапроса);
КонецФункции
@@ -24,24 +24,24 @@
ПараметрыЗапроса = Новый Структура("url", АдресВебхук);
АдресРесурса = АдресРесурсаПоИмениМетода("setWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
Функция DeleteWebhook() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("deleteWebhook");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
Функция GetWebhookInfo() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getWebhookInfo");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
@@ -51,8 +51,8 @@
Формат(ТелеграмОбщегоНазначения.ИдПоследнегоСообщения() + 1, "ЧГ=0"));
ПараметрыЗапроса = Новый Структура("offset", Смещение);
АдресРесурса = АдресРесурсаПоИмениМетода("getUpdates");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
@@ -61,15 +61,15 @@
АдресРесурса = АдресРесурсаПоИмениМетода("getFile");
ПараметрыЗапроса = Новый Структура("file_id", ИдФайла);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса);
КонецФункции
Функция GetMe() Экспорт
АдресРесурса = АдресРесурсаПоИмениМетода("getMe");
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса);
КонецФункции
@@ -79,8 +79,8 @@
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Надпись, БезУведомления, Разделитель);
ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента);
КонецФункции
@@ -98,8 +98,8 @@
Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
ДвоичныеДанныеФото = ДвоичныеДанныеФайла(ФайлДляОтправки, ИмяФайла, "image/jpeg", "photo", Разделитель);
ДанныеФото = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеФото);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьPostЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса, ДанныеФото);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса, ПараметрыЗапроса, ДанныеФото);
КонецФункции

View File

@@ -24,7 +24,7 @@
// Получить обновления, пришедшие от вебхука и сохранить в базу
Процедура ОбработатьИСохранитьОбновленияТелеграм(ТелоЗапроса) Экспорт
ДанныеОбновления = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоЗапроса);
ДанныеОбновления = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса);
Если ДанныеОбновления = Неопределено Тогда
Возврат;
@@ -48,7 +48,7 @@
Если ТипЗнч(ТелоЗапроса) = Тип("Соответствие") Тогда
ДанныеОбновления = ТелоЗапроса;
ИначеЕсли ТипЗнч(ТелоЗапроса) = Тип("Строка") Тогда
ДанныеОбновления = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелоЗапроса);
ДанныеОбновления = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелоЗапроса);
Иначе
Возврат Неопределено;
КонецЕсли;
@@ -138,8 +138,8 @@
Функция ПолучитьФайлССервераТелеграм(ПутьКФайлуНаСервере) Экспорт
АдресРесурса = СтрШаблон("file/bot%1/%2", ТелеграмПовторноеИспользование.ТелеграмТокен(), ПутьКФайлуНаСервере);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,,, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначения.ВыполнитьGetЗапрос(Соединение, АдресРесурса,, Истина);
Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL);
Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьGetЗапрос(Соединение, АдресРесурса,, Истина);
КонецФункции

View File

@@ -4,7 +4,7 @@
Процедура ПроверкаОбновленийПоРасписанию() Экспорт
// Проверка установлен ли вебхук
Ответ = HttpОбщегоНазначения.СтрокаJsonВОбъект(ТелеграмМетодыВызовСервера.GetWebhookInfo());
Ответ = HttpОбщегоНазначенияВызовСервера.СтрокаJsonВОбъект(ТелеграмМетодыВызовСервера.GetWebhookInfo());
Если Ответ["ok"] И ЗначениеЗаполнено(Ответ["result"]["url"]) Тогда
Возврат;
КонецЕсли;

View File

@@ -248,7 +248,7 @@
<Subsystem>ТелеграмБот</Subsystem>
<Subsystem>Обновления</Subsystem>
<CommonPicture>КартинкаБот</CommonPicture>
<CommonModule>HttpОбщегоНазначения</CommonModule>
<CommonModule>HttpОбщегоНазначенияВызовСервера</CommonModule>
<CommonModule>РаботаСОбновлениямиВызовСервера</CommonModule>
<CommonModule>РаботаСФайламиКлиентСервер</CommonModule>
<CommonModule>ТелеграмМетодыВызовСервера</CommonModule>

View File

@@ -4,12 +4,12 @@
Попытка
//ТелеграмОбщегоНазначения.ОбработатьИСохранитьОбновленияТелеграм(Запрос.ПолучитьТелоКакСтроку());
БотОбщегоНазначения.ОбработкаКомандыБота(Запрос.ПолучитьТелоКакСтроку());
Ответ = HttpОбщегоНазначения.ОтветУспех();
Ответ = HttpОбщегоНазначенияВызовСервера.ОтветУспех();
Возврат Ответ;
Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат HttpОбщегоНазначения.ОтветОшибка();
Возврат HttpОбщегоНазначенияВызовСервера.ОтветОшибка();
КонецПопытки;
КонецФункции
@@ -20,13 +20,13 @@
ОтветБотИнфо = ТелеграмМетодыВызовСервера.GetMe();
Если ОтветБотИнфо.Успех Тогда
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(HttpОбщегоНазначения.ОбъектВСтрокуJson(ОтветБотИнфо.Тело));
Ответ.УстановитьТелоИзСтроки(HttpОбщегоНазначенияВызовСервера.ОбъектВСтрокуJson(ОтветБотИнфо.Тело));
Возврат Ответ;
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации("Телеграм-бот.Ошибка", УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат HttpОбщегоНазначения.ОтветОшибка();
Возврат HttpОбщегоНазначенияВызовСервера.ОтветОшибка();
КонецПопытки;
КонецФункции

View File

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