1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-04 03:48:40 +02:00
This commit is contained in:
Anton 2024-05-25 12:56:19 +03:00
commit 81755d5c93
4 changed files with 325 additions and 13 deletions

View File

@ -120,6 +120,87 @@
#Область РаботаСФайламиИКаталогами
// Получить информацию об объекте
// Получает информацию о файле или каталоге
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту - path
// Подробно - Булево - Добавляет дополнительные поля информации для медиафайлов - detail
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Путь, Знач Подробно = Ложь) Экспорт
URL = "https://api.dropboxapi.com/2/files/get_metadata";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("include_media_info", Подробно, "Булево", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить список файлов папки
// Получает список первых файлов каталога или продолжает получение следующих при указании курсора
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к каталогу. Необязателен, если указан курсор - path
// Подробно - Булево - Добавляет дополнительные поля информации для медиафайлов - detail
// Курсор - Строка - Курсор из предыдущего запроса для получения следующего набора файлов - cursor
//
// Возвращаемое значение:
// HTTPОтвет - Получить список файлов папки
Функция ПолучитьСписокФайловПапки(Знач Токен, Знач Путь = "", Знач Подробно = Ложь, Знач Курсор = "") Экспорт
Если Не ЗначениеЗаполнено(Курсор) Тогда
URL = "https://api.dropboxapi.com/2/files/list_folder";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("include_media_info", Подробно , "Булево", Параметры);
Иначе
URL = "https://api.dropboxapi.com/2/files/list_folder/continue";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cursor", Курсор, "Строка", Параметры);
КонецЕсли;
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить превью
// Получает PDF или HTML превью объекта (только для токументов)
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьПревью(Знач Токен, Знач Путь) Экспорт
URL = "https://content.dropboxapi.com/2/files/get_preview";
Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
Возврат Ответ;
КонецФункции
// Загрузить файл
// Загружает файл на облачный диск
//
@ -155,14 +236,22 @@
// Удаляет объект с облачного диска
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту удаления - path
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту удаления - path
// БезВозвратно - Строка - Удалить объект без возможности востановления - permanently
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция УдалитьОбъект(Знач Токен, Знач Путь) Экспорт
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач Безвозвратно = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Безвозвратно);
Если Безвозвратно Тогда
URL = "https://api.dropboxapi.com/2/files/permanently_delete";
Иначе
URL = "https://api.dropboxapi.com/2/files/delete_v2";
КонецЕсли;
URL = "https://api.dropboxapi.com/2/files/delete_v2";
Ответ = ОбработатьОбъект(Токен, URL, Путь);
Возврат Ответ;
@ -173,7 +262,7 @@
// Копирует файл или каталог по выбранному пути
//
// Параметры:
// Токен - Строка - Токен - token
// Токен - Строка - Токен - token
// Откуда - Строка - Путь к объекту оригинала - form
// Куда - Строка - Целевой путь для нового объекта - to
//
@ -195,6 +284,32 @@
КонецФункции
// Переместить объект
// Перемещает объект по выбранному пути
//
// Параметры:
// Токен - Строка - Токен - token
// Откуда - Строка - Путь к объекту оригинала - form
// Куда - Строка - Целевой путь для нового объекта - to
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПереместитьОбъект(Знач Токен, Знач Откуда, Знач Куда) Экспорт
URL = "https://api.dropboxapi.com/2/files/move_v2";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("from_path", Откуда, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("to_path" , Куда , "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать папку
// Создает пустой каталог по выбранному пути
//
@ -224,7 +339,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция СкачатьФайл(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/download";
URL = "https://content.dropboxapi.com/2/files/download";
Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
Возврат Ответ;
@ -242,13 +357,63 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция СкачатьПапку(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/download_zip";
URL = "https://content.dropboxapi.com/2/files/download_zip";
Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
Возврат Ответ;
КонецФункции
// Получить список версий объекта
// Получает список версий (ревизий) объекта
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту - path
// Количество - Строка, Число - Число последних версий объекта для отображения - amount
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьСписокВерсийОбъекта(Знач Токен, Знач Путь, Знач Количество = 10) Экспорт
URL = "https://api.dropboxapi.com/2/files/list_revisions";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("limit", Количество, "Число" , Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Востановить объект к версии
// Востанавливает состояние объекта к необходимой версии (ревизии)
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту - path
// Версия - Строка - ID версии (ревизии) для востановления - rev
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ВостановитьОбъектКВерсии(Знач Токен, Знач Путь, Знач Версия) Экспорт
URL = "https://api.dropboxapi.com/2/files/restore";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path", Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("rev" , Версия, "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
@ -262,7 +427,7 @@
Если ВЗаголовках Тогда
Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
Ответ = OPI_Инструменты.PostBinary(URL, ПолучитьДвоичныеДанныеИзСтроки(""), Заголовки);
Иначе
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);

View File

@ -3153,8 +3153,13 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
Dropbox_ЗагрузитьФайл(ПараметрыТеста);
Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыТеста);
Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыТеста);
Dropbox_ВостановитьОбъектКВерсии(ПараметрыТеста);
Dropbox_ПолучитьПревью(ПараметрыТеста);
Dropbox_СкачатьФайл(ПараметрыТеста);
Dropbox_КопироватьФайл(ПараметрыТеста);
Dropbox_ПереместитьОбъект(ПараметрыТеста);
Dropbox_КопироватьОбъект(ПараметрыТеста);
Dropbox_УдалитьОбъект(ПараметрыТеста);
КонецПроцедуры
@ -3169,6 +3174,15 @@
КонецПроцедуры
Процедура ДропБокс_ПолучитьСписокФайловПапки() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
Dropbox_ПолучитьСписокФайловПапки(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -3218,8 +3232,16 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
КонецПроцедуры
Процедура Проверка_ДвоичныеДанные(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
Процедура Проверка_ДвоичныеДанные(Знач Результат, Знач Размер = Неопределено)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
Если Не Размер = Неопределено Тогда
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(Размер);
Иначе
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер() > 500000).Равно(Истина);
КонецЕсли;
КонецПроцедуры
Процедура Проверка_ТелеграмИстина(Знач Результат)
@ -3495,6 +3517,16 @@
КонецПроцедуры
Процедура Проверка_ДропБоксМассив(Знач Результат, Знач Количество = Неопределено)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["entries"]).ИмеетТип("Массив");
Если Не Количество = Неопределено Тогда
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["entries"].Количество()).Равно(Количество);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -4662,6 +4694,40 @@
КонецПроцедуры
Процедура Dropbox_ПолучитьИнформациюОбОбъекте(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.ПолучитьИнформациюОбОбъекте(Токен, Путь, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОбОбъекте");
Проверка_ДропБоксФайл(Результат, Путь);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ПолучитьПревью(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/mydoc.docx";
Результат = OPI_Dropbox.ПолучитьПревью(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьПревью");
Проверка_ДвоичныеДанные(Результат, 190834);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)
Путь = "/New/pic.png";
@ -4701,7 +4767,7 @@
КонецПроцедуры
Процедура Dropbox_КопироватьФайл(ПараметрыФункции)
Процедура Dropbox_КопироватьОбъект(ПараметрыФункции)
Оригинал = "/New/pic.png";
Копия = "/New/pic_copy.png";
@ -4722,6 +4788,27 @@
КонецПроцедуры
Процедура Dropbox_ПереместитьОбъект(ПараметрыФункции)
ОригиналныйПуть = "/New/pic.png";
ЦелевойПуть = "/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ОригиналныйПуть, ЦелевойПуть);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "Dropbox_ПереместитьОбъект");
Проверка_ДропБоксМетаданные(Результат, ЦелевойПуть);
Результат = OPI_Dropbox.ПереместитьОбъект(Токен, ЦелевойПуть, ОригиналныйПуть);
Проверка_ДропБоксМетаданные(Результат, ОригиналныйПуть);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
@ -4753,7 +4840,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл");
Проверка_ДвоичныеДанные(Результат);
Проверка_ДвоичныеДанные(Результат, 2114023);
OPI_Инструменты.Пауза(5);
@ -4776,6 +4863,63 @@
КонецПроцедуры
Процедура Dropbox_ПолучитьСписокФайловПапки(ПараметрыФункции)
Путь = "/New";
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.ПолучитьСписокФайловПапки(Токен, Путь, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокФайловПапки");
Проверка_ДропБоксМассив(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ПолучитьСписокВерсийОбъекта(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Результат = OPI_Dropbox.ПолучитьСписокВерсийОбъекта(Токен, Путь, 1);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл");
Проверка_ДропБоксМассив(Результат, 1);
Ревизия = Результат["entries"][0]["rev"];
ПараметрыФункции.Вставить("Dropbox_FileRevision", Ревизия);
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_FileRevision", Ревизия);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ВостановитьОбъектКВерсии(ПараметрыФункции)
Версия = ПараметрыФункции["Dropbox_FileRevision"];
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Результат = OPI_Dropbox.ВостановитьОбъектКВерсии(Токен, Путь, Версия);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВостановитьОбъектКВерсии");
Проверка_ДропБоксФайл(Результат, Путь);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -478,6 +478,9 @@
ИначеЕсли Тип = "ДвоичныеДанные" Тогда
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Значение);
ИначеЕсли Тип = "Число" Тогда
OPI_ПреобразованиеТипов.ПолучитьЧисло(Значение);
Иначе
OPI_ПреобразованиеТипов.ПолучитьСтроку(Значение);

Binary file not shown.