1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-02-03 13:22:19 +02:00

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

This commit is contained in:
Vitaly the Alpaca 2024-05-09 14:10:21 +00:00 committed by Vitaly the Alpaca (bot)
parent 1d8cfa05c8
commit d072c5d8a8
2 changed files with 155 additions and 3 deletions

View File

@ -414,6 +414,130 @@
#КонецОбласти
#Область РаботаСКомментариями
// Получить комментарии
// Получает список комментариев к записи в таблице
//
// Параметры:
// Токен - Строка - Токен - token
// База - Строка - Идентификатор базы данных - base
// Таблица - Строка - Идентификатор таблицы - table
// Запись - Строка - Идентификатор записи в таблице - record
// Отступ - Строка - Иднтификатор следующей страницы данных из предыдущего запроса - offset
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
Функция ПолучитьКомментарии(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Отступ = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура();
OPI_Инструменты.ДобавитьПоле("offset", Отступ, "Строка", Параметры);
Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать комментарий
// Создает комментарий к записи в таблице
//
// Параметры:
// Токен - Строка - Токен - token
// База - Строка - Идентификатор базы данных - base
// Таблица - Строка - Идентификатор таблицы - table
// Запись - Строка - Идентификатор записи в таблице - record
// Текст - Строка - Текст комментария - text
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
Функция СоздатьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Текст) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments";
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура();
OPI_Инструменты.ДобавитьПоле("text", Текст, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Изменить комментарий
// Изменяет текст существующего комментария
//
// Параметры:
// Токен - Строка - Токен - token
// База - Строка - Идентификатор базы данных - base
// Таблица - Строка - Идентификатор таблицы - table
// Запись - Строка - Идентификатор записи в таблице - record
// Комментарий - Строка - Идентификатор комментария - comment
// Текст - Строка - Новый текст комментария - text
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
Функция ИзменитьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Комментарий, Знач Текст) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments/" + Комментарий;
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура();
OPI_Инструменты.ДобавитьПоле("text", Текст, "Строка", Параметры);
Ответ = OPI_Инструменты.Patch(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Удалить комментарий
// Удаляет комментарий к записи таблицы
//
// Параметры:
// Токен - Строка - Токен - token
// База - Строка - Идентификатор базы данных - base
// Таблица - Строка - Идентификатор таблицы - table
// Запись - Строка - Идентификатор записи в таблице - record
// Комментарий - Строка - Идентификатор комментария - comment
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Airtable
Функция УдалитьКомментарий(Знач Токен, Знач База, Знач Таблица, Знач Запись, Знач Комментарий) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(База);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Запись);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Комментарий);
URL = "https://api.airtable.com/v0/" + База + "/" + Таблица + "/" + Запись + "/comments/" + Комментарий;
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -3617,27 +3617,55 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗапись");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).Равно(ОдиночнаяЗапись);
Текст = "Тестовый комментарий";
Результат = OPI_Airtable.СоздатьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Текст);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКомментарий");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["text"]).Равно(Текст);
Коммент = Результат["id"];
Текст = "Тестовый комментарий (изм.)";
Результат = OPI_Airtable.ИзменитьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Коммент, Текст);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьКомментарий");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["text"]).Равно(Текст);
Результат = OPI_Airtable.ПолучитьКомментарии(Токен, База, Таблица, ОдиночнаяЗапись);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКомментарии");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["comments"]).ИмеетТип("Массив");
Результат = OPI_Airtable.УдалитьКомментарий(Токен, База, Таблица, ОдиночнаяЗапись, Коммент);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКомментарий");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["deleted"]).Равно(Истина);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["id"]).Равно(Коммент);
Результат = OPI_Airtable.ПолучитьСписокЗаписей(Токен, База, Таблица);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокЗаписей");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"].Количество()).Равно(3);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
Результат = OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, МассивУдаляемых);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"].Количество()).Равно(2);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
Результат = OPI_Airtable.УдалитьЗаписи(Токен, База, Таблица, ОдиночнаяЗапись);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (одна)");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"].Количество()).Равно(1);
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["records"]).Заполнено();
КонецПроцедуры