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

DB: Теги

This commit is contained in:
Anton 2024-05-25 16:37:38 +03:00
parent ee68023914
commit b893bd934a
3 changed files with 171 additions and 0 deletions

View File

@ -464,6 +464,66 @@
#КонецОбласти
#Область РаботаСТегами
// Получить список тегов
// Получает список тегов выбранных файлов
//
// Параметры:
// Токен - Строка - Токен - token
// Пути - Строка, Массив Из Строка - Путь или набору путей к файлам - paths
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ПолучитьСписокТегов(Знач Токен, Знач Пути) Экспорт
URL = "https://api.dropboxapi.com/2/files/tags/get";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path", Пути, "Массив", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Добавить тег
// Добавляет новый текстовый тег к файлу или каталогу
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту, для которого необходимо создать тег - path
// Тег - Строка - Текст тега - tag
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция ДобавитьТег(Знач Токен, Знач Путь, Знач Тег) Экспорт
Возврат ОбработатьТег(Токен, Путь, Тег);
КонецФункции
// Удалить тег
// Удаляет текстовый тег файла или каталога
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту, тег которого необходимо удалить - path
// Тег - Строка - Текст тега - tag
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция УдалитьТег(Знач Токен, Знач Путь, Знач Тег) Экспорт
Возврат ОбработатьТег(Токен, Путь, Тег, Истина);
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -485,6 +545,26 @@
КонецФункции
Функция ОбработатьТег(Знач Токен, Знач Путь, Знач Тег, Знач ЭтоУдаление = Ложь)
Если ЭтоУдаление Тогда
URL = "https://api.dropboxapi.com/2/files/tags/remove";
Иначе
URL = "https://api.dropboxapi.com/2/files/tags/add";
КонецЕсли;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path" , Путь, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("tag_text" , Тег , "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьЗаголовкиЗапроса(Знач Токен, Знач Параметры = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);

View File

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

View File

@ -3194,6 +3194,17 @@
КонецПроцедуры
Процедура ДропБокс_СоздатьУдалитьТег() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
Dropbox_ДобавитьТег(ПараметрыТеста);
Dropbox_ПолчитьСписокТегов(ПараметрыТеста);
Dropbox_УдалитьТег(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -3546,6 +3557,13 @@
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[".tag"]).Равно("complete");
КонецПроцедуры
Процедура Проверка_ДропБоксТеги(Знач Результат, Знач Количество)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["paths_to_tags"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["paths_to_tags"].Количество()).Равно(Количество);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -4991,6 +5009,78 @@
КонецПроцедуры
Процедура Dropbox_ПолчитьСписокТегов(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
МассивПутей = Новый Массив;
МассивПутей.Добавить("/New/pic.png");
МассивПутей.Добавить("/New/mydoc.docx");
Результат = OPI_Dropbox.ПолучитьСписокТегов(Токен, МассивПутей);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТегов");
Проверка_ДропБоксТеги(Результат, МассивПутей.Количество());
Результат = OPI_Dropbox.ПолучитьСписокТегов(Токен, "/New/pic.png");
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТегов (одиночный)");
Проверка_ДропБоксТеги(Результат, 1);
ЕстьТег = Ложь;
Для Каждого Тег Из Результат["paths_to_tags"][0]["tags"] Цикл
Если Тег["tag_text"] = "Важное" Тогда
ЕстьТег = Истина;
КонецЕсли;
КонецЦикла;
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЕстьТег).Равно(Истина);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_ДобавитьТег(ПараметрыФункции)
Тег = "Важное";
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Результат = OPI_Dropbox.ДобавитьТег(Токен, Путь, Тег);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьТег");
Проверка_Пусто(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_УдалитьТег(ПараметрыФункции)
Тег = "Важное";
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Результат = OPI_Dropbox.УдалитьТег(Токен, Путь, Тег);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТег");
Проверка_Пусто(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
#КонецОбласти
#КонецОбласти