1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-05-18 09:51:28 +02:00

Доработка расширенного вызова

This commit is contained in:
Anton Titovets
2026-05-10 15:08:02 +03:00
parent 1fb0942f45
commit 6d171ff0d7
4 changed files with 90 additions and 24 deletions
@@ -172,8 +172,10 @@
Параметры = Новый Структура("file_id", IDФайла);
URL = "api.telegram.org/bot" + Токен + "/getFile";
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
URL = СтрШаблон("api.telegram.org/bot%1/getFile", Токен);
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
OPI_РасширенныйВызов.НормализоватьПромежуточныйРезультат(Ответ);
Путь = Ответ[Result]["file_path"];
@@ -202,7 +204,7 @@
КонецЕсли;
URL = "api.telegram.org/file/bot" + Токен + "/" + Путь;
URL = СтрШаблон("api.telegram.org/file/bot%1/%2", Токен, Путь);
Ответ = OPI_ЗапросыHTTP.Get(URL, Параметры);
Возврат Ответ;
@@ -117,7 +117,7 @@
МассивОписания.Добавить(СтрШаблон("%1: %2", Настройка.Ключ, Настройка.Значение));
КонецЦикла;
Возврат СтрСоединить(МассивОписания);
Возврат СтрСоединить(МассивОписания, Символы.ПС);
КонецФункции
@@ -167,11 +167,11 @@
Если ЗначениеЗаполнено(АдресХранилища) Тогда
ПоместитьВоВременноеХранилище(Результат, АдресХранилища);
Иначе
//@skip-check constructor-function-return-section
Возврат Результат;
КонецЕсли;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат Результат;
КонецФункции
Функция ПолучитьТекущиеНастройки() Экспорт
@@ -229,6 +229,19 @@
КонецФункции
Процедура НормализоватьПромежуточныйРезультат(Результат) Экспорт
НормализованныйРезультат = Неопределено;
Если OPI_Инструменты.ПолучитьИли(ПолучитьТекущиеНастройки(), "adv_response", Ложь)
И OPI_Инструменты.ПолеКоллекцииСуществует(Результат, "body", НормализованныйРезультат) Тогда
Результат = НормализованныйРезультат;
КонецЕсли;
КонецПроцедуры
Процедура УдалитьНастройки() Экспорт
//@skip-check module-unused-local-variable
@@ -1382,26 +1382,51 @@
КонецФункции
Функция Проверка_Core_ВызовВФЗ(Знач Результат, Знач Вариант)
ЭтоOneScript = OPI_Инструменты.ЭтоOneScript();
ФоновоеЗадание = Результат["ФоновоеЗадание"];
Счетчик = 0;
Пока ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Цикл
Попытка
ФоновоеЗадание.ОжидатьЗавершения();
Исключение
OPI_Инструменты.Пауза(5);
Если Счетчик = 10 Тогда
ВызватьИсключение "Too long";
Иначе
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
ВызватьИсключение ПодробноеПредставлениеОшибки(?(ЭтоOneScript
, ФоновоеЗадание.ИнформацияОбОшибке
, ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).ИнформацияОбОшибке));
КонецПопытки;
Если Не ЭтоOneScript Тогда
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор);
КонецЕсли;
ОжидаетЧто(ФоновоеЗадание.Состояние).Равно(СостояниеФоновогоЗадания.Завершено);
ДанныеРезультата = ПолучитьИзВременногоХранилища(Результат["Адрес"]);
Если ЭтоOneScript Тогда
ДанныеРезультата = ФоновоеЗадание.Результат;
Иначе
ДанныеРезультата = ПолучитьИзВременногоХранилища(Результат["Адрес"]);
КонецЕсли;
Если Не ЗначениеЗаполнено(Вариант) Тогда
ОжидаетЧто(ДанныеРезультата.Свойство("status")).Равно(Истина);
ОжидаетЧто(ДанныеРезультата.Свойство("headers")).Равно(Истина);
ОжидаетЧто(ДанныеРезультата.Свойство("body")).Равно(Истина);
ИначеЕсли Вариант = "ВозвратДД" Тогда
ОжидаетЧто(ТипЗнч(ДанныеРезультата)).Равно(Тип("ДвоичныеДанные"));
ИначеЕсли Вариант = "ВозвратДДСтруктура" Тогда
ОжидаетЧто(ДанныеРезультата.Свойство("status")).Равно(Истина);
ОжидаетЧто(ДанныеРезультата.Свойство("headers")).Равно(Истина);
ОжидаетЧто(ТипЗнч(ДанныеРезультата["body"])).Равно(Тип("ДвоичныеДанные"));
КонецЕсли;
Возврат Неопределено;
+29 -3
View File
@@ -107,6 +107,7 @@
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Telegram_FileID", ПараметрыТеста);
РасширенныйВызов_ВызватьСНастройками(ПараметрыТеста);
РасширенныйВызов_ПолучитьДоступныеНастройки();
@@ -150,7 +151,8 @@
Процедура РасширенныйВызов_ВызовВФЗ(ПараметрыФункции)
Токен = ПараметрыФункции["Telegram_Token"];
Токен = ПараметрыФункции["Telegram_Token"];
IDФайла = ПараметрыФункции["Telegram_FileID"];
Параметры = Новый Массив;
Параметры.Добавить(Токен);
@@ -164,8 +166,32 @@
, Параметры
, Настройки);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ВызовВФЗ");
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ВызовВФЗ");
Параметры = Новый Массив;
Параметры.Добавить(Токен);
Параметры.Добавить(IDФайла);
Настройки = Новый Структура("dontwait", Истина);
Результат = OPI_РасширенныйВызов.ВызватьСНастройками("OPI_Telegram"
, "СкачатьФайл"
, Параметры
, Настройки);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ВызовВФЗ", "ВозвратДД");
Настройки = Новый Структура("adv_response, dontwait"
, Истина
, Истина);
Результат = OPI_РасширенныйВызов.ВызватьСНастройками("OPI_Telegram"
, "СкачатьФайл"
, Параметры
, Настройки);
OPI_ПолучениеДанныхТестов.Обработать(Результат, "Core", "ВызовВФЗ", "ВозвратДДСтруктура");
КонецПроцедуры
#КонецОбласти