1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-12 04:34:10 +02:00

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

This commit is contained in:
Vitaly the Alpaca 2024-05-26 07:37:42 +00:00 committed by Vitaly the Alpaca (bot)
parent f04b2a5de4
commit a37b8bbb99
6 changed files with 158 additions and 11 deletions

View File

@ -99,6 +99,10 @@ jobs:
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_СоздатьУдалитьТег"
- name: Получить данные аккаунта
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ПолучитьАккаунт"
- name: Записать логи
uses: actions/upload-artifact@v4

View File

@ -905,6 +905,10 @@ jobs:
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_СоздатьУдалитьТег"
- name: Получить данные аккаунта
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ПолучитьАккаунт"
- name: Записать логи
uses: actions/upload-artifact@v4

View File

@ -33,7 +33,7 @@
#Область ПрограммныйИнтерфейс
#Область Авторизация
#Область АккаунтИАвторизация
// Получить ссылку авторизации
// Генерирует ссылку авторизации для перехода в браузере
@ -116,6 +116,50 @@
КонецФункции
// Получить информацию об аккаунте
// Получает информацию об аккаунте
//
// Параметры:
// Токен - Строка - Токен - token
// Аккаунт - Строка - ID аккаунта. Текущий аккаунт токена, если не заполнено - account
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьИнформациюОбАккаунте(Знач Токен, Знач Аккаунт = "") Экспорт
Если ЗначениеЗаполнено(Аккаунт) Тогда
Результат = ПолучитьАккаунт(Токен, Аккаунт);
Иначе
Результат = ПолучитьСвойАккаунт(Токен);
КонецЕсли;
Возврат Результат;
КонецФункции
// Получить данные использования пространства
// Получает информацию о количестве использованного дискового пространства
//
// Параметры:
// Токен - Строка - Токен - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьДанныеИспользованияПространства(Знач Токен) Экспорт
URL = "https://api.dropboxapi.com/2/users/get_space_usage";
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.PostBinary(URL
, ПолучитьДвоичныеДанныеИзСтроки("null")
, Заголовки
,
, "text/plain; charset=dropbox-cors-hack");
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область РаботаСФайламиИКаталогами
@ -191,7 +235,7 @@
// Путь - Строка - Путь к объекту - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
// ДвоичныеДанные - превью документа
Функция ПолучитьПревью(Знач Токен, Знач Путь) Экспорт
URL = "https://content.dropboxapi.com/2/files/get_preview";
@ -384,7 +428,7 @@
// Путь - Строка - Путь или ID файла - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
// ДвоичныеДанные - двоичные данные файла
Функция СкачатьФайл(Знач Токен, Знач Путь) Экспорт
URL = "https://content.dropboxapi.com/2/files/download";
@ -402,7 +446,7 @@
// Путь - Строка - Путь или ID каталога - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
// ДвоичныеДанные - двоичные данные zip архива с содержимым каталога
Функция СкачатьПапку(Знач Токен, Знач Путь) Экспорт
URL = "https://content.dropboxapi.com/2/files/download_zip";
@ -480,7 +524,7 @@
URL = "https://api.dropboxapi.com/2/files/tags/get";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path", Пути, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("paths", Пути, "Массив", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
@ -684,4 +728,34 @@
КонецФункции
Функция ПолучитьАккаунт(Знач Токен, Знач Аккаунт)
URL = "https://api.dropboxapi.com/2/users/get_account";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("account_id", Аккаунт, "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьСвойАккаунт(Знач Токен)
URL = "https://api.dropboxapi.com/2/users/get_current_account";
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.PostBinary(URL
, ПолучитьДвоичныеДанныеИзСтроки("null")
, Заголовки
,
, "text/plain; charset=dropbox-cors-hack");
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3205,6 +3205,16 @@
КонецПроцедуры
Процедура ДропБокс_ПолучитьАккаунт() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыТеста);
Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -3564,6 +3574,14 @@
КонецПроцедуры
Процедура Проверка_ДропбоксАккаунт(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["account_id"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ДропбоксПространство(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["used"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -5034,7 +5052,7 @@
ЕстьТег = Ложь;
Для Каждого Тег Из Результат["paths_to_tags"][0]["tags"] Цикл
Если Тег["tag_text"] = "Важное" Тогда
Если Тег["tag_text"] = "важное" Тогда
ЕстьТег = Истина;
КонецЕсли;
КонецЦикла;
@ -5081,6 +5099,42 @@
КонецПроцедуры
Процедура Dropbox_ПолучитьИнформациюОбАккаунте(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбАккаунте");
Проверка_ДропбоксАккаунт(Результат);
Результат = OPI_Dropbox.ПолучитьИнформациюОбАккаунте(Токен, Результат["account_id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбАккаунте (сторонний)");
Проверка_ДропбоксАккаунт(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ПолучитьДанныеИспользованияПространства(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.ПолучитьДанныеИспользованияПространства(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьДанныеИспользованияПространства");
Проверка_ДропбоксПространство(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -211,6 +211,7 @@
НовыйТест(ТаблицаТестов, "ДропБокс_ЗагрузитьФайлПоURL" , "Загрузить файл по URL" , ДропБокс);
НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьКаталог" , "Создать каталог" , ДропБокс);
НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьУдалитьТег" , "Создать/Удалить тег" , ДропБокс);
НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьАккаунт" , "Получить данные аккаунта" , ДропБокс);
Возврат ТаблицаТестов;

View File

@ -85,9 +85,13 @@
КонецФункции
Функция PostBinary(Знач URL, Знач Тело, Знач ДопЗаголовки, Знач ПолныйОтвет = Ложь) Экспорт
Функция PostBinary(Знач URL
, Знач Тело
, Знач ДопЗаголовки
, Знач ПолныйОтвет = Ложь
, Знач ТипДанных = "application/octet-stream") Экспорт
Возврат ВыполнитьЗапросСДвоичнымиДанными(URL, "POST", Тело, ДопЗаголовки, ПолныйОтвет);
Возврат ВыполнитьЗапросСДвоичнымиДанными(URL, "POST", Тело, ДопЗаголовки, ПолныйОтвет, ТипДанных);
КонецФункции
@ -540,13 +544,18 @@
КонецФункции
Функция ВыполнитьЗапросСДвоичнымиДанными(Знач URL, Знач Вид, Знач Данные, Знач ДопЗаголовки, Знач ПолныйОтвет)
Функция ВыполнитьЗапросСДвоичнымиДанными(Знач URL
, Знач Вид
, Знач Данные
, Знач ДопЗаголовки
, Знач ПолныйОтвет
, Знач ТипДанных)
СтруктураURL = РазбитьURL(URL);
Сервер = СтруктураURL["Сервер"];
Адрес = СтруктураURL["Адрес"];
Запрос = СоздатьЗапрос(Адрес, ДопЗаголовки, "application/octet-stream");
Запрос = СоздатьЗапрос(Адрес, ДопЗаголовки, ТипДанных);
Соединение = СоздатьСоединение(Сервер);
Запрос.УстановитьТелоИзДвоичныхДанных(Данные);
@ -558,7 +567,8 @@
, Вид
, Данные
, ДопЗаголовки
, ПолныйОтвет);
, ПолныйОтвет
, ТипДанных);
Иначе
ОбработатьОтвет(Ответ, ПолныйОтвет);
КонецЕсли;