1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-28 09:08:38 +02:00

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

This commit is contained in:
Vitaly the Alpaca 2024-05-27 16:58:06 +00:00 committed by Vitaly the Alpaca (bot)
parent 5466909b7f
commit 2783cf7035
5 changed files with 260 additions and 0 deletions

View File

@ -103,6 +103,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

@ -909,6 +909,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

@ -568,6 +568,147 @@
#КонецОбласти
#Область НастройкиСовместногоДоступа
// Опубликовать папку
// Переводит каталог в режим публичного доступа
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к целевому каталогу - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ОпубликоватьПапку(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/sharing/share_folder";
Ответ = ОбработатьОбъект(Токен, URL, Путь);
Возврат Ответ;
КонецФункции
// Отменить публикацию папки
// Отменяет режим общего доступа для каталога
//
// Параметры:
// Токен - Строка - Токен - token
// IDПапки - Строка - ID публичного каталога (shared folder ID) - folder
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ОтменитьПубликациюПапки(Знач Токен, Знач IDПапки) Экспорт
URL = "https://api.dropboxapi.com/2/sharing/unshare_folder";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("shared_folder_id", IDПапки, "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Добавить пользователя к файлу
// Определяет доступ к файлу для стороннего пользователя
//
// Параметры:
// Токен - Строка - Токен - token
// IDФайла - Строка - ID файла, к которому предоставляется доступ - fileid
// АдресаПочты - Строка, Массив Из Строка - Список адресов почты добавляемых пользователей - emails
// ТолькоПросмотр - Булево - Запрещает редактирование файла для стороннего пользователя - readonly
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ДобавитьПользователейКФайлу(Знач Токен, Знач IDФайла, Знач АдресаПочты, Знач ТолькоПросмотр = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(АдресаПочты);
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDФайла);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоПросмотр);
Если Не СтрНачинаетсяС(IDФайла, "id:") Тогда
IDФайла = "id:" + IDФайла;
КонецЕсли;
URL = "https://api.dropboxapi.com/2/sharing/add_file_member";
МассивПользователей = Новый Массив;
Для Каждого Адрес Из АдресаПочты Цикл
ДанныеПользователя = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле(".tag" , "email", "Строка", ДанныеПользователя);
OPI_Инструменты.ДобавитьПоле("email", Адрес , "Строка", ДанныеПользователя);
МассивПользователей.Добавить(ДанныеПользователя);
КонецЦикла;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("file" , IDФайла , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("members", МассивПользователей , "Массив", Параметры);
Режим = ?(ТолькоПросмотр, "viewer", "editor");
OPI_Инструменты.ДобавитьПоле("access_level", Режим , "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Добавить пользователей к папке
// Предоставляет стороннии пользователям доступ к каталогу
//
// Параметры:
// Токен - Строка - Токен - token
// IDПапки - Строка - ID публичного каталога (shared folder ID) - folder
// АдресаПочты - Строка, Массив Из Строка - Список адресов почты добавляемых пользователей - emails
// ТолькоПросмотр - Булево - Запрещает редактирование файла для стороннего пользователя - readonly
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ДобавитьПользователейКПапке(Знач Токен, Знач IDПапки, Знач АдресаПочты, Знач ТолькоПросмотр = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьМассив(АдресаПочты);
OPI_ПреобразованиеТипов.ПолучитьБулево(ТолькоПросмотр);
Режим = ?(ТолькоПросмотр, "viewer", "editor");
URL = "https://api.dropboxapi.com/2/sharing/add_folder_member";
МассивПользователей = Новый Массив;
Для Каждого Адрес Из АдресаПочты Цикл
ДанныеПользователя = Новый Соответствие;
OPI_Инструменты.ДобавитьПоле(".tag" , "email", "Строка", ДанныеПользователя);
OPI_Инструменты.ДобавитьПоле("email", Адрес , "Строка", ДанныеПользователя);
СтруктураПользователя = Новый Структура("member,access_level", ДанныеПользователя, Режим);
МассивПользователей.Добавить(СтруктураПользователя);
КонецЦикла;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("shared_folder_id", IDПапки , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("members" , МассивПользователей , "Массив", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -3215,6 +3215,20 @@
КонецПроцедуры
Процедура ДропБокс_РаботаСДоступами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_OtherUser", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_FileID" , ПараметрыТеста);
Dropbox_ДобавитьПользователейКФайлу(ПараметрыТеста);
Dropbox_ОпубликоватьПапку(ПараметрыТеста);
Dropbox_ДобавитьПользователейКПапке(ПараметрыТеста);
Dropbox_ОтменитьПубликациюПапки(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -3582,6 +3596,17 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["used"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ДропбоксУчастник(Знач Результат, Знач Почта, Знач ТолькоПросмотр)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[0]["result"][".tag"]).Равно("success");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[0]["member"]["email"]).Равно(Почта);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(
Результат[0]["result"]["success"][".tag"]).Равно(?(ТолькоПросмотр, "viewer", "editor"));
КонецПроцедуры
Процедура Проверка_ДропбоксПубличнаяПапка(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["shared_folder_id"]).Заполнено();
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -5135,6 +5160,91 @@
КонецПроцедуры
Процедура Dropbox_ДобавитьПользователейКФайлу(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Почта = ПараметрыФункции["Dropbox_OtherUser"];
Файл = ПараметрыФункции["Dropbox_FileID"];
Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почта, Ложь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПользователяКФайлу");
Проверка_ДропбоксУчастник(Результат, Почта, Ложь);
Почты = Новый Массив;
Почты.Добавить(Почта);
Результат = OPI_Dropbox.ДобавитьПользователейКФайлу(Токен, Файл, Почты, Истина);
Проверка_ДропбоксУчастник(Результат, Почта, Истина);
КонецПроцедуры
Процедура Dropbox_ОпубликоватьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New";
Результат = OPI_Dropbox.ОпубликоватьПапку(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОпубликоватьПапку");
//Проверка_ДропБоксПубличнаяПапка(Результат);
IDПапки = Результат["shared_folder_id"];
ПараметрыФункции.Вставить("Dropbox_SharedFolder", IDПапки);
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_SharedFolder", IDПапки);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ОтменитьПубликациюПапки(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Папка = ПараметрыФункции["Dropbox_SharedFolder"];
Результат = OPI_Dropbox.ОтменитьПубликациюПапки(Токен, Папка);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтменитьПубликациюПапки");
Проверка_ДропБоксСтатус(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ДобавитьПользователейКПапке(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Почта = ПараметрыФункции["Dropbox_OtherUser"];
Папка = ПараметрыФункции["Dropbox_SharedFolder"]; // shared_folder_id
Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почта, Ложь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПользователяКФайлу");
Проверка_ДропбоксУчастник(Результат, Почта, Ложь);
Почты = Новый Массив;
Почты.Добавить(Почта);
Результат = OPI_Dropbox.ДобавитьПользователейКПапке(Токен, Папка, Почты, Истина);
Проверка_ДропбоксУчастник(Результат, Почта, Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

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