1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-12 11:15:07 +02:00

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

This commit is contained in:
Vitaly the Alpaca 2024-04-01 16:19:39 +00:00 committed by Vitaly the Alpaca (bot)
parent 5bf236d90a
commit 86c308b5f1
2 changed files with 147 additions and 103 deletions

View File

@ -234,22 +234,33 @@
// Строка, Произвольный, ДвоичныеДанные, HTTPОтвет, Неопределено - Ответ сервера Yandex
Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
Заголовки = ЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
Href = "href";
Попытка
Заголовки = ЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
Href = "href";
Ответ = "";
Этап = "";
Параметры = Новый Структура;
Параметры.Вставить("from" , Оригинал);
Параметры.Вставить("path" , Путь);
Параметры.Вставить("overwrite" , Перезаписывать);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Этап = "POST запрос к " + URL;
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Этап = "GET запрос к " + Строка(URLОтвета);
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
Параметры = Новый Структура;
Параметры.Вставить("from" , Оригинал);
Параметры.Вставить("path" , Путь);
Параметры.Вставить("overwrite" , Перезаписывать);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
URLОтвета = Ответ[Href];
Ответ = OPI_Инструменты.Get(URLОтвета, , Заголовки);
Возврат Ответ;
Исключение
ВызватьИсключение OPI_Инструменты.ИсключениеМногошаговойОперации(Этап, ОписаниеОшибки(), Ответ);
КонецПопытки;
КонецФункции

View File

@ -94,89 +94,6 @@
#КонецОбласти
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
СоответствиеВозврата = Новый Соответствие;
КоличествоЧастей = 2;
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
Для Каждого Параметр Из МассивПараметров Цикл
МассивКлючЗначение = СтрРазделить(Параметр, "=");
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
КонецЕсли;
КонецЦикла;
Возврат СоответствиеВозврата;
КонецФункции
Функция ПолучитьТекущуюДату() Экспорт
Возврат МестноеВремя(ТекущаяУниверсальнаяДата());
КонецФункции
Функция UNIXTime(Знач Дата) Экспорт
ОТД = Новый ОписаниеТипов("Дата");
Дата = ОТД.ПривестиЗначение(Дата);
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
КонецФункции
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
МассивСимволов = Новый Соответствие;
МассивСимволов.Вставить("<", "&lt;");
МассивСимволов.Вставить(">", "&gt;");
МассивСимволов.Вставить("&", "&amp;");
МассивСимволов.Вставить("_", " ");
МассивСимволов.Вставить("[", "(");
МассивСимволов.Вставить("]", ")");
Для Каждого СимволМассива Из МассивСимволов Цикл
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
КонецЦикла;
КонецПроцедуры
Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
ТипКоллекции = ТипЗнч(Коллекция);
ВыходнаяКоллекция = Новый(ТипКоллекции);
Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
УдалитьПустыеКлючиЗначения(Коллекция, ВыходнаяКоллекция);
ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
УдалитьПустыеЭлементыМассива(Коллекция, ВыходнаяКоллекция);
Иначе
ВыходнаяКоллекция = Коллекция;
КонецЕсли;
Коллекция = ВыходнаяКоллекция;
КонецПроцедуры
Процедура Пауза(Знач Секунды) Экспорт
Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
Попытка
Соединение.Получить(Новый HTTPЗапрос(""));
Исключение
Возврат;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#Область Служебные
@ -256,11 +173,17 @@
, Ложь
, Ложь);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(ЗаписьJSON, Данные);
Возврат ЗаписьJSON.Закрыть();
Попытка
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(ЗаписьJSON, Данные);
Возврат ЗаписьJSON.Закрыть();
Исключение
Возврат "НЕ JSON: " + Строка(Данные);
КонецПопытки;
КонецФункции
@ -280,6 +203,65 @@
КонецФункции
Функция ИсключениеМногошаговойОперации(Знач Этап, Знач ОписаниеОшибки, Знач ПоследнийОтвет = "") Экспорт
ТекстОшибки = "Ошибка на одном из шагов выполнения операции!";
ТекстОшибки = ТекстОшибки + Символы.ПС + "Промежуточный этап: " + Этап;
Если ЗначениеЗаполнено(ПоследнийОтвет) Тогда
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + "Последний ответ: " + Символы.ПС;
Если ТипЗнч(ПоследнийОтвет) = Тип("Структура")
Или ТипЗнч(ПоследнийОтвет) = Тип("Соответствие") Тогда
ТекстОшибки = ТекстОшибки + JSONСтрокой(ПоследнийОтвет);
Иначе
ТекстОшибки = ТекстОшибки + ?(ЗначениеЗаполнено(ПоследнийОтвет), Строка(ПоследнийОтвет), "<отсутствует>");
КонецЕсли;
КонецЕсли;
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС + "Описание ошибки: " + Символы.ПС + ОписаниеОшибки;
Возврат ТекстОшибки;
КонецФункции
Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт
СоответствиеВозврата = Новый Соответствие;
КоличествоЧастей = 2;
МассивПараметров = СтрРазделить(СтрокаПараметров, "&", Ложь);
Для Каждого Параметр Из МассивПараметров Цикл
МассивКлючЗначение = СтрРазделить(Параметр, "=");
Если МассивКлючЗначение.Количество() = КоличествоЧастей Тогда
СоответствиеВозврата.Вставить(МассивКлючЗначение[0], МассивКлючЗначение[1]);
КонецЕсли;
КонецЦикла;
Возврат СоответствиеВозврата;
КонецФункции
Функция ПолучитьТекущуюДату() Экспорт
Возврат МестноеВремя(ТекущаяУниверсальнаяДата());
КонецФункции
Функция UNIXTime(Знач Дата) Экспорт
ОТД = Новый ОписаниеТипов("Дата");
Дата = ОТД.ПривестиЗначение(Дата);
Возврат Формат(Дата - Дата(1970, 1, 1, 1, 0, 0), "ЧЦ=10; ЧДЦ=0; ЧГ=0");
КонецФункции
Процедура ЗначениеВМассив(Значение) Экспорт
Значение_ = Новый Массив;
@ -288,6 +270,57 @@
КонецПроцедуры
Процедура ЗаменитьСпецСимволы(Текст) Экспорт
МассивСимволов = Новый Соответствие;
МассивСимволов.Вставить("<", "&lt;");
МассивСимволов.Вставить(">", "&gt;");
МассивСимволов.Вставить("&", "&amp;");
МассивСимволов.Вставить("_", " ");
МассивСимволов.Вставить("[", "(");
МассивСимволов.Вставить("]", ")");
Для Каждого СимволМассива Из МассивСимволов Цикл
Текст = СтрЗаменить(Текст, СимволМассива.Ключ, СимволМассива.Значение);
КонецЦикла;
КонецПроцедуры
Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
ТипКоллекции = ТипЗнч(Коллекция);
ВыходнаяКоллекция = Новый(ТипКоллекции);
Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
УдалитьПустыеКлючиЗначения(Коллекция, ВыходнаяКоллекция);
ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
УдалитьПустыеЭлементыМассива(Коллекция, ВыходнаяКоллекция);
Иначе
ВыходнаяКоллекция = Коллекция;
КонецЕсли;
Коллекция = ВыходнаяКоллекция;
КонецПроцедуры
Процедура Пауза(Знач Секунды) Экспорт
Соединение = Новый HTTPСоединение("1C.ru", 11111, , , , Секунды);
Попытка
Соединение.Получить(Новый HTTPЗапрос(""));
Исключение
Возврат;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#КонецОбласти