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:
parent
5466909b7f
commit
2783cf7035
4
.github/workflows/oint_test_Dropbox.yml
vendored
4
.github/workflows/oint_test_Dropbox.yml
vendored
@ -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
|
||||
|
4
.github/workflows/oint_test_full.yml
vendored
4
.github/workflows/oint_test_full.yml
vendored
@ -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
|
||||
|
@ -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, Параметры, Заголовки);
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -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.ДобавитьПользователейКПапке(Токен, Папка, Почты, Истина);
|
||||
|
||||
Проверка_ДропбоксУчастник(Результат, Почта, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -212,6 +212,7 @@
|
||||
НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьКаталог" , "Создать каталог" , ДропБокс);
|
||||
НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьУдалитьТег" , "Создать/Удалить тег" , ДропБокс);
|
||||
НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьАккаунт" , "Получить данные аккаунта" , ДропБокс);
|
||||
НовыйТест(ТаблицаТестов, "ДропБокс_РаботаСДоступами" , "Работа с доступами" , ДропБокс);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user