1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-25 21:39:21 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca 2024-04-16 17:49:22 +00:00 committed by Vitaly the Alpaca (bot)
parent 54b54407f0
commit 07766d99b0
2 changed files with 111 additions and 28 deletions

View File

@ -174,12 +174,13 @@
// Получает файл по ID
//
// Параметры:
// Токен - Строка - Токен - token
// Идентификатор - Строка - Идентификатор файла - object
// Токен - Строка - Токен - token
// Идентификатор - Строка - Идентификатор файла - object
// ПутьСохранения - Строка - Путь сохранения файла - out
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Google
Функция СкачатьФайл(Знач Токен, Знач Идентификатор) Экспорт
// ДвоичныеДанные,Строка - двоичные данные или путь к файлу при указании параметра ПутьСохранения
Функция СкачатьФайл(Знач Токен, Знач Идентификатор, Знач ПутьСохранения = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Идентификатор);
@ -190,7 +191,7 @@
Параметры = Новый Соответствие;
Параметры.Вставить("alt", "media");
Ответ = OPI_Инструменты.Get(URL, Параметры , Заголовки);
Ответ = OPI_Инструменты.Get(URL, Параметры , Заголовки, ПутьСохранения);
Возврат Ответ;

View File

@ -37,11 +37,11 @@
#Область ЗапросыБезТела
Функция Get(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "") Экспорт
Функция Get(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросБезТела(URL, "GET", Параметры, ДопЗаголовки);
КонецФункции
Функция Delete(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "") Экспорт
Функция Delete(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросБезТела(URL, "DELETE", Параметры, ДопЗаголовки);
КонецФункции
@ -49,16 +49,37 @@
#Область ЗапросыСТелом
Функция Post(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина, Знач ПолныйОтвет = Ложь) Экспорт
Функция Post(Знач URL
, Знач Параметры = ""
, Знач ДопЗаголовки = ""
, Знач JSON = Истина
, Знач ПолныйОтвет = Ложь
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросСТелом(URL, "POST", Параметры, ДопЗаголовки, JSON, ПолныйОтвет);
КонецФункции
Функция Patch(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина, Знач ПолныйОтвет = Ложь) Экспорт
Функция Patch(Знач URL
, Знач Параметры = ""
, Знач ДопЗаголовки = ""
, Знач JSON = Истина
, Знач ПолныйОтвет = Ложь
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросСТелом(URL, "PATCH", Параметры, ДопЗаголовки, JSON, ПолныйОтвет);
КонецФункции
Функция Put(Знач URL, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина, Знач ПолныйОтвет = Ложь) Экспорт
Функция Put(Знач URL
, Знач Параметры = ""
, Знач ДопЗаголовки = ""
, Знач JSON = Истина
, Знач ПолныйОтвет = Ложь
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросСТелом(URL, "PUT", Параметры, ДопЗаголовки, JSON, ПолныйОтвет);
КонецФункции
#КонецОбласти
@ -69,7 +90,8 @@
, Знач Параметры
, Знач Файлы = ""
, Знач ТипКонтента = "image/jpeg"
, Знач ДопЗаголовки = "") Экспорт
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросМультипарт(URL, "POST", Параметры, Файлы, ТипКонтента, ДопЗаголовки);
@ -79,18 +101,31 @@
, Знач Параметры
, Знач Файлы = ""
, Знач ТипКонтента = "image/jpeg"
, Знач ДопЗаголовки = "") Экспорт
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросМультипарт(URL, "PUT", Параметры, Файлы, ТипКонтента, ДопЗаголовки);
КонецФункции
Функция PostMultipartRelated(Знач URL, Знач JSON = "", Знач Файлы = "", Знач ДопЗаголовки = "") Экспорт
Функция PostMultipartRelated(Знач URL
, Знач JSON = ""
, Знач Файлы = ""
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросМультипартРелэйтед(URL, "POST", JSON, Файлы, ДопЗаголовки);
КонецФункции
Функция PatchMultipartRelated(Знач URL, Знач JSON = "", Знач Файлы = "", Знач ДопЗаголовки = "") Экспорт
Функция PatchMultipartRelated(Знач URL
, Знач JSON = ""
, Знач Файлы = ""
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "") Экспорт
Возврат ВыполнитьЗапросМультипартРелэйтед(URL, "PATCH", JSON, Файлы, ДопЗаголовки);
КонецФункции
#КонецОбласти
@ -103,6 +138,13 @@
Возврат;
КонецЕсли;
ФайлТела = Ответ.ПолучитьИмяФайлаТела();
Если Не ФайлТела = Неопределено Тогда
Ответ = ФайлТела;
Возврат;
КонецЕсли;
GZip = "gzip";
НужнаРаспаковка =
Ответ.Заголовки.Получить("Content-Encoding") = GZip
@ -334,7 +376,13 @@
#Область СлужебныеПроцедурыИФункции
Функция ВыполнитьЗапросСТелом(Знач URL, Знач Вид, Знач Параметры = "", Знач ДопЗаголовки = "", Знач JSON = Истина, Знач ПолныйОтвет = Ложь)
Функция ВыполнитьЗапросСТелом(Знач URL
, Знач Вид
, Знач Параметры = ""
, Знач ДопЗаголовки = ""
, Знач JSON = Истина
, Знач ПолныйОтвет = Ложь
, Знач ФайлОтвета = "")
Если Не ЗначениеЗаполнено(Параметры) Тогда
Параметры = Новый Структура;
@ -350,10 +398,16 @@
УстановитьТелоЗапроса(Запрос, Параметры, JSON);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос, ФайлОтвета);
Если ЭтоПереадресация(Ответ) Тогда
Ответ = ВыполнитьЗапросСТелом(Ответ.Заголовки["Location"], Вид, Параметры, ДопЗаголовки, JSON);
Ответ = ВыполнитьЗапросСТелом(Ответ.Заголовки["Location"]
, Вид
, Параметры
, ДопЗаголовки
, JSON
, ПолныйОтвет
, ФайлОтвета);
Иначе
ОбработатьОтвет(Ответ, ПолныйОтвет);
КонецЕсли;
@ -362,7 +416,11 @@
КонецФункции
Функция ВыполнитьЗапросБезТела(Знач URL, Знач Вид, Знач Параметры = "", Знач ДопЗаголовки = "")
Функция ВыполнитьЗапросБезТела(Знач URL
, Знач Вид
, Знач Параметры = ""
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "")
Если Не ЗначениеЗаполнено(Параметры) Тогда
Параметры = Новый Структура;
@ -374,10 +432,10 @@
Запрос = СоздатьЗапрос(Адрес, ДопЗаголовки);
Соединение = СоздатьСоединение(Сервер);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос, ФайлОтвета);
Если ЭтоПереадресация(Ответ) Тогда
Ответ = ВыполнитьЗапросБезТела(Ответ.Заголовки["Location"], Вид, Параметры, ДопЗаголовки);
Ответ = ВыполнитьЗапросБезТела(Ответ.Заголовки["Location"], Вид, Параметры, ДопЗаголовки, ФайлОтвета);
Иначе
ОбработатьОтвет(Ответ);
КонецЕсли;
@ -391,7 +449,8 @@
, Знач Параметры
, Знач Файлы = ""
, Знач ТипКонтента = "image/jpeg"
, Знач ДопЗаголовки = "")
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "")
Если Не ЗначениеЗаполнено(Параметры) Тогда
Параметры = Новый Структура;
@ -414,7 +473,13 @@
Соединение = СоздатьСоединение(Сервер);
ТелоЗапроса = ПолучитьИмяВременногоФайла();
ЗаписьТекста = Новый ЗаписьДанных(ТелоЗапроса, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian, "", Ложь, "", Ложь);
ЗаписьТекста = Новый ЗаписьДанных(ТелоЗапроса
, КодировкаТекста.UTF8
, ПорядокБайтов.LittleEndian
, ""
, Ложь
, ""
, Ложь);
ЗаписатьПараметрыМультипарт(ЗаписьТекста, Boundary, Параметры);
ЗаписатьФайлыМультипарт(ЗаписьТекста, Boundary, ТипКонтента, Файлы);
@ -424,7 +489,7 @@
Запрос.УстановитьИмяФайлаТела(ТелоЗапроса);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос, ФайлОтвета);
ЭтоПереадресация = Ответ.КодСостояния >= Переадресация И Ответ.КодСостояния < Ошибка;
Если ЭтоПереадресация Тогда
@ -433,7 +498,8 @@
, Параметры
, Файлы
, ТипКонтента
, ДопЗаголовки);
, ДопЗаголовки
, ФайлОтвета);
Иначе
ОбработатьОтвет(Ответ);
КонецЕсли;
@ -446,7 +512,12 @@
КонецФункции
Функция ВыполнитьЗапросМультипартРелэйтед(URL, Вид, JSON = "", Файлы = "", ДопЗаголовки = "")
Функция ВыполнитьЗапросМультипартРелэйтед(Знач URL
, Знач Вид
, Знач JSON = ""
, Знач Файлы = ""
, Знач ДопЗаголовки = ""
, Знач ФайлОтвета = "")
Переадресация = 300;
Ошибка = 400;
@ -461,7 +532,13 @@
Соединение = СоздатьСоединение(Сервер);
ТелоЗапроса = ПолучитьИмяВременногоФайла();
ЗаписьТекста = Новый ЗаписьДанных(ТелоЗапроса, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian, "", Ложь, "", Ложь);
ЗаписьТекста = Новый ЗаписьДанных(ТелоЗапроса
, КодировкаТекста.UTF8
, ПорядокБайтов.LittleEndian
, ""
, Ложь
, ""
, Ложь);
ЗаписатьJSONМультипарт(ЗаписьТекста, Boundary, JSON);
ЗаписатьФайлыРелэйтед(ЗаписьТекста, Boundary, Файлы);
@ -473,11 +550,16 @@
Запрос.УстановитьИмяФайлаТела(ТелоЗапроса);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос);
Ответ = Соединение.ВызватьHTTPМетод(Вид, Запрос, ФайлОтвета);
ЭтоПереадресация = Ответ.КодСостояния >= Переадресация И Ответ.КодСостояния < Ошибка;
Если ЭтоПереадресация Тогда
Ответ = ВыполнитьЗапросМультипартРелэйтед(Ответ.Заголовки["Location"], "POST", JSON, Файлы, ДопЗаголовки);
Ответ = ВыполнитьЗапросМультипартРелэйтед(Ответ.Заголовки["Location"]
, Вид
, JSON
, Файлы
, ДопЗаголовки
, ФайлОтвета);
Иначе
ОбработатьОтвет(Ответ);
КонецЕсли;