1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-11-24 08:52:18 +02:00

B24: Методы новостей

This commit is contained in:
Anton 2024-06-15 10:44:21 +03:00
parent 1216d2fe6d
commit bf24624b92
3 changed files with 212 additions and 30 deletions

View File

@ -152,7 +152,7 @@
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// Текст - Строка - Текст новости - text
// Видмость - Строка - Массив/Один получатель (UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа) - vision
// Видимость - Строка - Массив/Один получатель: UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа - vision
// Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные - files
// Заголовок - Строка - Заголовок новости - title
// Важное - Булево - Помечает новость как важную - important
@ -162,7 +162,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция СоздатьНовость(Знач URL
, Знач Текст
, Знач Видмость = "UA"
, Знач Видимость = "UA"
, Знач Файлы = ""
, Знач Заголовок = ""
, Знач Важное = Ложь
@ -171,10 +171,56 @@
ПривестиБулево(Важное);
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.add");
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("DEST" , Видмость , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("IMPORTANT" , Важное , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("DEST" , Видимость , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("IMPORTANT" , Важное , "Строка", Параметры);
Если ЗначениеЗаполнено(Файлы) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(Файлы);
МассивФайлов = НормализоватьФайлы(Файлы);
Если Не МассивФайлов.Количество() = 0 Тогда
Параметры.Вставить("FILES", МассивФайлов);
КонецЕсли;
Конецесли;
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Изменить новость
// Изменяет новость в ленте
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDНовости - Строка, Число - ID новости - postid
// Текст - Строка - Текст новости - text
// Видимость - Строка - Массив/Один получатель: UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа - vision
// Файлы - Строка - Данные вложений, где ключ > имя файла, значение > путь к файлу иди двоичные данные - files
// Заголовок - Строка - Заголовок новости - title
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ИзменитьНовость(Знач URL
, Знач IDНовости
, Знач Текст
, Знач Видимость = "UA"
, Знач Файлы = ""
, Знач Заголовок = ""
, Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.update");
OPI_Инструменты.ДобавитьПоле("POST_MESSAGE", Текст , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_TITLE" , Заголовок , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("DEST" , Видимость , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("POST_ID" , IDНовости , "Строка", Параметры);
Если ЗначениеЗаполнено(Файлы) Тогда
@ -242,7 +288,7 @@
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDНовости - Строка, Число - ID важной новости - postid
// Отбор - Строка - Отбор новостей по доступу (UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа) - sel
// Отбор - Строка - Отбор новостей по доступу: UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа - sel
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
@ -260,6 +306,54 @@
КонецФункции
// Добавить комментарий
// Добавляет комментарий к новости
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDНовости - Строка, Число - ID новости - postid
// Текст - Строка - Текст комментария - text
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ДобавитьКомментарий(Знач URL, Знач IDНовости, Знач Текст, Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogcomment.add");
OPI_Инструменты.ДобавитьПоле("POST_ID" , IDНовости, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("TEXT" , Текст , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
// Добавить получателей к новости
// Добавляет новые группы или пользователей в получатели
//
// Параметры:
// URL - Строка - URL внешнего вебхука или адрес Bitrix24 при использовании токена - url
// IDНовости - Строка, Число - ID новости - postid
// Видимость - Строка - Массив/Один получатель: UA все, SGn раб. группа, Un пользователь, DRn отдел, Gn группа - vision
// Токен - Строка - Токен авторизации, если используется не вебхук - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Bitrxi24
Функция ДобавитьПолучателейКНовости(Знач URL, Знач IDНовости, Знач Видимость, Знач Токен = "") Экспорт
Параметры = НормализоватьАвторизацию(URL, Токен, "log.blogpost.share");
OPI_Инструменты.ДобавитьПоле("POST_ID" , IDНовости, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("DEST" , Видимость, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти
@ -311,25 +405,25 @@
НормализованныеФайлы = Новый Массив;
Если Не ТипЗнч(Файлы) = Тип("Соответствие") Тогда
Возврат НормализованныеФайлы;
КонецЕсли;
Если ТипЗнч(Файлы) = Тип("Соответствие") Тогда
Для Каждого Файл Из Файлы Цикл
ТекущийМассив = Новый Массив;
ТекущийФайл = Файл.Значение;
ТекущееИмя = Файл.Ключ;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
ТекущийМассив.Добавить(ТекущееИмя);
ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
НормализованныеФайлы.Добавить(ТекущийМассив);
КонецЦикла;
Для Каждого Файл Из Файлы Цикл
ТекущийМассив = Новый Массив;
ТекущийФайл = Файл.Значение;
ТекущееИмя = Файл.Ключ;
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(ТекущийФайл);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекущееИмя);
ТекущийМассив.Добавить(ТекущееИмя);
ТекущийМассив.Добавить(Base64Строка(ТекущийФайл));
НормализованныеФайлы.Добавить(ТекущийМассив);
КонецЦикла;
КонецЕсли;
Возврат НормализованныеФайлы;

View File

@ -127,7 +127,8 @@
КонецФункции
// Изменить свойства страницы.
// Изменить свойства страницы
// Изменяет свойства существующей страницы
//
// Параметры:
// Токен - Строка - Токен - token
@ -366,7 +367,8 @@
КонецФункции
// Вернуть блок.
// Вернуть блок
// Возвращает структуру блока по ID
//
// Параметры:
// Токен - Строка - Токен - token

View File

@ -3294,8 +3294,11 @@
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста);
Bitrix24_СоздатьНовость(ПараметрыТеста);
Bitrix24_ИзменитьНовость(ПараметрыТеста);
Bitrix24_ПолучитьСписокПросмотревшихВажное(ПараметрыТеста);
Bitrix24_ПолучитьНовости(ПараметрыТеста);
Bitrix24_ДобавитьКомментарий(ПараметрыТеста);
Bitrix24_ДобавитьПолучателейКНовости(ПараметрыТеста);
Bitrix24_УдалитьНовость(ПараметрыТеста);
КонецПроцедуры
@ -3703,7 +3706,7 @@
КонецПроцедуры
Процедура Проверка_БитриксНовость(Знач Результат)
Процедура Проверка_БитриксЧисло(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Число").Заполнено();
КонецПроцедуры
@ -5530,7 +5533,7 @@
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьНовость (хук)", "Bitrix24");
Проверка_БитриксНовость(Результат); // SKIP
Проверка_БитриксЧисло(Результат); // SKIP
IDНовости = Результат["result"]; // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Bitrix24_HookPostID", IDНовости); // SKIP
@ -5545,7 +5548,7 @@
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьНовость", "Bitrix24");
Проверка_БитриксНовость(Результат);
Проверка_БитриксЧисло(Результат);
IDНовости = Результат["result"];
@ -5554,6 +5557,38 @@
КонецПроцедуры
Процедура Bitrix24_ИзменитьНовость(ПараметрыФункции)
Текст = "Новый текст новости";
Заголовок = "Новый заголовок новости";
Картинка1 = ПараметрыФункции["Picture"];
IDНовости = ПараметрыФункции["Bitrix24_PostID"];
Файлы = Новый Соответствие;
Файлы.Вставить("1.png", Картинка1);
URL = ПараметрыФункции["Bitrix24_URL"];
Результат = OPI_Bitrix24.ИзменитьНовость(URL, IDНовости, Текст, , Файлы, Заголовок);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьНовость (хук)", "Bitrix24");
Проверка_БитриксЧисло(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
Результат = OPI_Bitrix24.ИзменитьНовость(URL, IDНовости, Текст, , Файлы, Заголовок, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьНовость", "Bitrix24");
Проверка_БитриксЧисло(Результат);
КонецПроцедуры
Процедура Bitrix24_УдалитьНовость(ПараметрыФункции)
IDНовости = ПараметрыФункции["Bitrix24_HookPostID"];
@ -5627,6 +5662,57 @@
КонецПроцедуры
Процедура Bitrix24_ДобавитьКомментарий(ПараметрыФункции)
Текст = "Комментарий к новости";
IDНовости = ПараметрыФункции["Bitrix24_PostID"];
URL = ПараметрыФункции["Bitrix24_URL"];
Результат = OPI_Bitrix24.ДобавитьКомментарий(URL, IDНовости, Текст);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКомментарий (хук)", "Bitrix24");
Проверка_БитриксЧисло(Результат); // SKIP
Текст = "Другой комментарий к новости";
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
Результат = OPI_Bitrix24.ДобавитьКомментарий(URL, IDНовости, Текст, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКомментарий", "Bitrix24");
Проверка_БитриксЧисло(Результат);
КонецПроцедуры
Процедура Bitrix24_ДобавитьПолучателейКНовости(ПараметрыФункции)
Видимость = "UA";
IDНовости = ПараметрыФункции["Bitrix24_PostID"];
URL = ПараметрыФункции["Bitrix24_URL"];
Результат = OPI_Bitrix24.ДобавитьПолучателейКНовости(URL, IDНовости, Видимость);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолучателейКНовости (хук)", "Bitrix24");
Проверка_БитриксИстина(Результат); // SKIP
URL = ПараметрыФункции["Bitrix24_Domain"];
Токен = ПараметрыФункции["Bitrix24_Token"];
Результат = OPI_Bitrix24.ДобавитьПолучателейКНовости(URL, IDНовости, Видимость, Токен);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьПолучателейКНовости", "Bitrix24");
Проверка_БитриксИстина(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти