1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-20 05:19:32 +02:00
This commit is contained in:
Anton 2024-04-25 21:19:08 +03:00
commit 6e77cf2000
5 changed files with 203 additions and 14 deletions

View File

@ -758,6 +758,14 @@ 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: Загрузить/Удалить внеш. файл
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ЗагрузитьУдалитьВФ"
Encode:
runs-on: ubuntu-latest
needs: Testing-Twitter

View File

@ -805,6 +805,126 @@
#КонецОбласти
#Область РаботаСУдаленнымиФайлами
// Получить список внешних файлов
// Получает список внешних файлов пользователя или канала
//
// Параметры:
// Токен - Строка - Токен бота - token
// Канал - Строка - Канал для отбора - channel
// Курсор - Строка - Указатель из предыдущего запроса, если строк результата > 100 - cursor
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ПолучитьСписокВнешнихФайлов(Знач Токен, Знач Канал = "", Знач Курсор = "") Экспорт
URL = "https://slack.com/api/files.remote.list";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("channel", Канал , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("cursor" , Курсор, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить внешний файл
// Получает информацию о внешнем файле
//
// Параметры:
// Токен - Строка - Токен бота - token
// ИдентификаторФайла - Строка - Идентификатор файла - fileid
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ПолучитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла) Экспорт
URL = "https://slack.com/api/files.remote.info";
Ответ = УправлениеВнешнимФайлом(Токен, ИдентификаторФайла, URL);
Возврат Ответ;
КонецФункции
// Добавить внешний файл
// Добавляет новый внешний файл
//
// Параметры:
// Токен - Строка - Токен бота - token
// URL - Строка - URL к внешнему файлу - url
// Заголовок - Строка - Заголовок файла для Slack - title
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ДобавитьВнешнийФайл(Знач Токен, Знач URL, Знач Заголовок) Экспорт
URL = "https://slack.com/api/files.remote.add";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
UID = Строка(Новый УникальныйИдентификатор());
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("external_url", URL , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("external_id" , UID , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("title" , Заголовок , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Отправить внешний файл
// Отправляет внейшний файл по списку каналов
//
// Параметры:
// Токен - Строка - Токен бота - token
// ИдентификаторФайла - Строка - Идентификатор файла - fileid
// МассивКаналов - Массив Из Строка - Массив каналов для отправки - channels
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция ОтправитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла, Знач МассивКаналов) Экспорт
URL = "https://slack.com/api/files.remote.share";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(МассивКаналов);
МассивКаналов = СтрСоединить(МассивКаналов, ",");
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("file" , ИдентификаторФайла , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("channels", МассивКаналов , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Удалить внешний файл
// Удаляет внешний файл из Slack
//
// Параметры:
// Токен - Строка - Токен бота - token
// ИдентификаторФайла - Строка - Идентификатор файла - fileid
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Slack
Функция УдалитьВнешнийФайл(Знач Токен, Знач ИдентификаторФайла) Экспорт
URL = "https://slack.com/api/files.remote.remove";
Ответ = УправлениеВнешнимФайлом(Токен, ИдентификаторФайла, URL);
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область ФормированиеБлоков
// Сформировать блок картинку
@ -881,4 +1001,17 @@
КонецФункции
Функция УправлениеВнешнимФайлом(Знач Токен, Знач ИдентификаторФайла, Знач URL)
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("file", ИдентификаторФайла , "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3191,20 +3191,7 @@
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["name"]).Равно(ИмяФайла);
Результат = OPI_Slack.СделатьФайлПубличным(Токен, ЗагруженныйФайл["id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СделатьФайлПубличным");
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["permalink_public"]).Заполнено();
Результат = OPI_Slack.СделатьФайлПриватным(Токен, ЗагруженныйФайл["id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СделатьФайлПриватным");
Проверка_СлакОк(Результат);
Для Каждого ЗагруженныйФайл Из МассивФайлов Цикл
Результат = OPI_Slack.УдалитьФайл(Токен, ЗагруженныйФайл);
@ -3217,6 +3204,65 @@
КонецПроцедуры
Процедура Слак_ПолучитьСписокВФ() Экспорт
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
Канал = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВнешнихФайлов");
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
Результат = OPI_Slack.ПолучитьСписокВнешнихФайлов(Токен, Канал);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокВнешнихФайлов");
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["files"]).ИмеетТип("Массив");
КонецПроцедуры
Процедура Слак_ЗагрузитьУдалитьВФ() Экспорт
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Token");
Файл = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Document");
Канал = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Slack_Channel");
Заголовок = "Новый файл";
Результат = OPI_Slack.ДобавитьВнешнийФайл(Токен, Файл, Заголовок);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьВнешнийФайл");
ЗагруженныйФайл = Результат["file"];
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["title"]).Равно(Заголовок);
Результат = OPI_Slack.ПолучитьВнешнийФайл(Токен, ЗагруженныйФайл["id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьВнешнийФайл");
ЗагруженныйФайл = Результат["file"];
Проверка_СлакОк(Результат);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗагруженныйФайл["title"]).Равно(Заголовок);
Результат = OPI_Slack.ОтправитьВнешнийФайл(Токен, ЗагруженныйФайл["id"], Канал);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВнешнийФайл");
Проверка_СлакОк(Результат);
Результат = OPI_Slack.УдалитьВнешнийФайл(Токен, ЗагруженныйФайл["id"]);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОтправитьВнешнийФайл");
Проверка_СлакОк(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -184,6 +184,8 @@
НовыйТест(ТаблицаТестов, "Слак_ОткрытьЗакрытьДиалог" , "Открыть/Закрыть диалог" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьСписокФайлов" , "Получить список файлов" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ПолучитьСписокВФ" , "Получить список внеш. файлов" , Слак);
НовыйТест(ТаблицаТестов, "Слак_ЗагрузитьУдалитьВФ" , "Загрузить/Удалить внеш. файл" , Слак);
Возврат ТаблицаТестов;

Binary file not shown.