diff --git a/OInt/core/Modules/OPI_GoogleCalendar.os b/OInt/core/Modules/OPI_GoogleCalendar.os index 546e3896ba..8fe11a73ee 100644 --- a/OInt/core/Modules/OPI_GoogleCalendar.os +++ b/OInt/core/Modules/OPI_GoogleCalendar.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/core/Modules/OPI_GoogleDrive.os b/OInt/core/Modules/OPI_GoogleDrive.os index 5dfbbdb332..3cb48d8fd1 100644 --- a/OInt/core/Modules/OPI_GoogleDrive.os +++ b/OInt/core/Modules/OPI_GoogleDrive.os @@ -22,12 +22,15 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" #Область ПрограммныйИнтерфейс -#Область РаботаСФайлами +#Область РаботаСФайламиИКаталогами // Получить информацию об объекте. // @@ -40,8 +43,12 @@ Функция ПолучитьИнформациюОбОбъекте(Знач Токен, Знач Идентификатор) Экспорт Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен); - URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор; - Ответ = OPI_Инструменты.Get(URL, , Заголовки); + URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор; + + Параметры = Новый Структура; + Параметры.Вставить("fields", "*"); + + Ответ = OPI_Инструменты.Get(URL, Параметры, Заголовки); Возврат Ответ; @@ -118,25 +125,8 @@ // // Возвращаемое значение: // HTTPОтвет - Ответ сервера Google -Функция ЗагрузитьФайл(Знач Токен, Знач Файл, Знач Описание) Экспорт - - MIME = Описание["MIME"]; - Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен); - URL = "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"; - - Если ТипЗнч(Файл) <> Тип("ДвоичныеДанные") Тогда - Файл = Новый ДвоичныеДанные(Файл); - КонецЕсли; - - СоответствиеФайла = Новый Соответствие; - СоответствиеФайла.Вставить(Файл, MIME); - - СформироватьПараметрыЗагрузкиФайла(Описание); - - Ответ = OPI_Инструменты.PostMultipartRelated(URL, Описание, СоответствиеФайла, Заголовки); - - Возврат Ответ; - +Функция ЗагрузитьФайл(Знач Токен, Знач Файл, Знач Описание) Экспорт + Возврат УправлениеФайлом(Токен, Файл, Описание); КонецФункции // Скачать файл. @@ -214,6 +204,29 @@ КонецФункции +// Обновить файл. +// +// Параметры: +// Токен - Строка - Токен +// Идентификатор - Строка - Идентификатор обновляемого объекта +// Файл - ДвоичныеДанные,Строка - Файл или путь к файлу +// НовоеИмя - Строка - Новое имя файла (если необходимо) +// +// Возвращаемое значение: +// HTTPОтвет - Ответ сервера Google +Функция ОбновитьФайл(Знач Токен, Знач Идентификатор, Знач Файл, Знач НовоеИмя = "") Экспорт + + Если ЗначениеЗаполнено(НовоеИмя) Тогда + Описание = Новый Соответствие; + Описание.Вставить("Имя", НовоеИмя); + Иначе + Описание = ""; + КонецЕсли; + + Возврат УправлениеФайлом(Токен, Файл, Описание, Идентификатор); + +КонецФункции + // Получить описание файла. // // Возвращаемое значение: @@ -232,6 +245,24 @@ #КонецОбласти +#Область РаботаСКомментариями + +Функция СоздатьКомментарий(Знач Токен, Знач Идентификатор, Знач Комментарий) Экспорт + + Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен); + URL = "https://www.googleapis.com/drive/v3/files/" + Идентификатор + "/comments?fields=*"; + + Параметры = Новый Структура; + Параметры.Вставить("content", Комментарий); + + Ответ = OPI_Инструменты.POST(URL, Параметры, Заголовки); + + Возврат Ответ; + +КонецФункции + +#КонецОбласти + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -317,8 +348,44 @@ КонецЦикла; - Описание = OPI_Инструменты.JSONСтрокой(СформированноеОписание); + Описание = СформированноеОписание; КонецПроцедуры +Функция УправлениеФайлом(Знач Токен, Знач Файл, Знач Описание = "", Знач Идентификатор = "") + + Если ЗначениеЗаполнено(Идентификатор) Тогда + MIME = ПолучитьИнформациюОбОбъекте(Токен, Идентификатор)["mimeType"]; + Иначе + MIME = Описание["MIME"]; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Описание) Тогда + Описание = Новый Соответствие; + КонецЕсли; + + Заголовки = OPI_GoogleWorkspace.ПолучитьЗаголовокАвторизации(Токен); + URL = "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"; + + Если ТипЗнч(Файл) <> Тип("ДвоичныеДанные") Тогда + Файл = Новый ДвоичныеДанные(Файл); + КонецЕсли; + + СоответствиеФайла = Новый Соответствие; + СоответствиеФайла.Вставить(Файл, MIME); + + СформироватьПараметрыЗагрузкиФайла(Описание); + Описание = OPI_Инструменты.JSONСтрокой(Описание); + + Если ЗначениеЗаполнено(Идентификатор) Тогда + URL = СтрЗаменить(URL, "/files", "/files/" + Идентификатор); + Ответ = OPI_Инструменты.PatchMultipartRelated(URL, Описание, СоответствиеФайла, Заголовки); + Иначе + Ответ = OPI_Инструменты.PostMultipartRelated(URL, Описание, СоответствиеФайла, Заголовки); + КонецЕсли; + + Возврат Ответ; + +КонецФункции + #КонецОбласти diff --git a/OInt/core/Modules/OPI_GoogleWorkspace.os b/OInt/core/Modules/OPI_GoogleWorkspace.os index 1022367db3..c3aa12e53b 100644 --- a/OInt/core/Modules/OPI_GoogleWorkspace.os +++ b/OInt/core/Modules/OPI_GoogleWorkspace.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/core/Modules/OPI_Notion.os b/OInt/core/Modules/OPI_Notion.os index 9e0c789f26..6915029b1f 100644 --- a/OInt/core/Modules/OPI_Notion.os +++ b/OInt/core/Modules/OPI_Notion.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/core/Modules/OPI_Telegram.os b/OInt/core/Modules/OPI_Telegram.os index bb5c61039c..d831749f96 100644 --- a/OInt/core/Modules/OPI_Telegram.os +++ b/OInt/core/Modules/OPI_Telegram.os @@ -23,6 +23,8 @@ // https://github.com/Bayselonarrend/OpenIntegrations // BSLLS:Typo-off +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off // Раскомментировать, если выполняется OneScript #Использовать "../../tools" @@ -227,7 +229,6 @@ // // Возвращаемое значение: // Произвольный, HTTPОтвет - Ответ сервера Telegram -// BSLLS:Typo-off Функция ОтправитьМедиагруппу(Знач Токен, Знач IDЧата, Знач Текст, Знач СоответствиеФайлов, Знач Клавиатура = "") Экспорт // СоответствиеФайлов @@ -1076,5 +1077,3 @@ КонецПроцедуры #КонецОбласти - -// BSLLS:Typo-on diff --git a/OInt/core/Modules/OPI_Twitter.os b/OInt/core/Modules/OPI_Twitter.os index 35a35f043f..002f3b2bb6 100644 --- a/OInt/core/Modules/OPI_Twitter.os +++ b/OInt/core/Modules/OPI_Twitter.os @@ -25,6 +25,8 @@ // и почитать комментарии // BSLLS:Typo-off +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off // Раскомментировать, если выполняется OneScript #Использовать "../../tools" @@ -487,8 +489,6 @@ КонецФункции -// BSLLS:LatinAndCyrillicSymbolInWord-off - Функция СоздатьЗаголовокАвторизацииV1(Знач Параметры, Знач Поля, Знач ВидЗапроса, Знач URL) ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату(); @@ -601,8 +601,4 @@ КонецФункции -// BSLLS:LatinAndCyrillicSymbolInWord-on - #КонецОбласти - -// BSLLS:Typo-on diff --git a/OInt/core/Modules/OPI_VK.os b/OInt/core/Modules/OPI_VK.os index c4d1d7faba..d8b88755fe 100644 --- a/OInt/core/Modules/OPI_VK.os +++ b/OInt/core/Modules/OPI_VK.os @@ -25,6 +25,8 @@ // и почитать комментарии // BSLLS:NumberOfOptionalParams-off +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off // Раскомментировать, если выполняется OneScript #Использовать "../../tools" @@ -1408,8 +1410,6 @@ #КонецОбласти #Область СлужебныеПроцедурыИФункции -// BSLLS:MissingReturnedValueDescription-off -// BSLLS:MissingParameterDescription-off Функция ПолучитьСтандартныеПараметры(Знач Параметры = "") @@ -1571,6 +1571,7 @@ КонецФункции //@skip-check method-too-many-params + Функция УправлениеПодборкой(Знач Название , Знач Картинка = "" , Знач ИДПодборки = "" @@ -1795,8 +1796,4 @@ КонецПроцедуры -// BSLLS:MissingParameterDescription-on -// BSLLS:MissingReturnedValueDescription-on #КонецОбласти - -// BSLLS:NumberOfOptionalParams-on diff --git a/OInt/core/Modules/OPI_Viber.os b/OInt/core/Modules/OPI_Viber.os index ce78f12126..fb2b6c2b82 100644 --- a/OInt/core/Modules/OPI_Viber.os +++ b/OInt/core/Modules/OPI_Viber.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/core/Modules/OPI_YandexDisk.os b/OInt/core/Modules/OPI_YandexDisk.os index 106e0eae6c..8f8161f107 100644 --- a/OInt/core/Modules/OPI_YandexDisk.os +++ b/OInt/core/Modules/OPI_YandexDisk.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/core/Modules/OPI_YandexID.os b/OInt/core/Modules/OPI_YandexID.os index da514a8f66..8bf74f647b 100644 --- a/OInt/core/Modules/OPI_YandexID.os +++ b/OInt/core/Modules/OPI_YandexID.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + // Раскомментировать, если выполняется OneScript #Использовать "../../tools" diff --git a/OInt/tests/Modules/internal/OPI_Тесты.os b/OInt/tests/Modules/internal/OPI_Тесты.os index 7a20b355d9..60874adb88 100644 --- a/OInt/tests/Modules/internal/OPI_Тесты.os +++ b/OInt/tests/Modules/internal/OPI_Тесты.os @@ -23,8 +23,11 @@ // https://github.com/Bayselonarrend/OpenIntegrations // Набор тестов для YAxUnit + // @skip-check undefined-variable // BSLLS:Typo-off +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off // Раскомментировать, если выполняется OneScript #Использовать "../../../tools" @@ -1773,6 +1776,7 @@ МассивУдаляемых = Новый Массив; Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token"); Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Картинка"); + КартинкаЗамены = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Картинка2"); Каталог = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GD_Каталог"); Описание = OPI_GoogleDrive.ПолучитьОписаниеФайла(); @@ -1796,7 +1800,24 @@ МассивУдаляемых.Добавить(Результат[Id_]); Результат = OPI_GoogleDrive.СкачатьФайл(Токен, Идентификатор); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные"); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(Картинка.Размер() + 2); + OPI_Инструменты.Пауза(5); + + НовоеИмя = "Обновленный"; + Результат = OPI_GoogleDrive.ОбновитьФайл(Токен, Идентификатор, КартинкаЗамены, НовоеИмя); + OPI_Инструменты.Пауза(5); + + Комментарий = "Yo"; + Результат = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий); + + + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[MimeType]).Равно(Описание["MIME"]); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат[Name]).Равно(НовоеИмя); + + Результат = OPI_GoogleDrive.СкачатьФайл(Токен, Идентификатор); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат.Размер()).Равно(КартинкаЗамены.Размер() + 2); + + OPI_Инструменты.Пауза(5); Для Каждого Удаляемый Из МассивУдаляемых Цикл Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Удаляемый); @@ -1808,6 +1829,26 @@ КонецПроцедуры +Процедура ГД_СоздатьУдалитьКомментарий() Экспорт + + Id_ = "id"; + Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token"); + Каталог = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GD_Каталог"); + Картинка = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Картинка"); + + Описание = OPI_GoogleDrive.ПолучитьОписаниеФайла(); + Описание.Вставить("Родитель", Каталог); + + Результат = OPI_GoogleDrive.ЗагрузитьФайл(Токен, Картинка, Описание); + Идентификатор = Результат[Id_]; + + Комментарий = "Новый комментарий"; + Результат = OPI_GoogleDrive.СоздатьКомментарий(Токен, Идентификатор, Комментарий); + + Результат = OPI_GoogleDrive.УдалитьОбъект(Токен, Идентификатор); + +КонецПроцедуры + #КонецОбласти #Область Twitter @@ -2211,5 +2252,3 @@ #КонецОбласти #КонецОбласти - -// BSLLS:Typo-on diff --git a/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os b/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os index 53a32053ee..8fd1a8120b 100644 --- a/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os +++ b/OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os @@ -1,306 +1,320 @@ -// MIT License - -// Copyright (c) 2023 Anton Tsitavets - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// https://github.com/Bayselonarrend/OpenIntegrations - -// Раскомментировать, если выполняется OneScript -#Использовать "./internal" -#Использовать asserts - -// BSLLS:Typo-off - -#Область СлужебныйПрограммныйИнтерфейс - -Функция ОжидаетЧто(Значение) Экспорт - - Попытка - - Модуль = ПолучитьОбщийМодуль("ЮТест"); - Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль"); - Возврат Модуль.ОжидаетЧто(Значение); - - Исключение - Возврат Ожидаем.Что(Значение); - КонецПопытки; - -КонецФункции - -Функция СформироватьТестыЯкс() Экспорт - - Модуль = ПолучитьОбщийМодуль("ЮТТесты"); - МассивРазделов = ПолучитьМассивРазделовТестирования(); - ТаблицаТестов = ПолучитьТаблицуТестов(); - - Для Каждого Раздел Из МассивРазделов Цикл - - Отбор = Новый Структура("Раздел", Раздел); - ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор); - - Набор = Модуль.ДобавитьТестовыйНабор(Раздел); - - Для Каждого Тест Из ТестыРаздела Цикл - Набор.ДобавитьСерверныйТест(Тест.Метод, Тест.Синоним); - КонецЦикла; - - КонецЦикла; - - Возврат ""; - -КонецФункции - -Функция СформироватьТестыАссертс() Экспорт - - ТаблицаТестов = ПолучитьТаблицуТестов(); - МассивТестов = Новый Массив; - - Для Каждого Тест Из ТаблицаТестов Цикл - МассивТестов.Добавить(Тест.Метод); - КонецЦикла; - - Возврат МассивТестов; - -КонецФункции - -Функция ПолучитьПараметр(Параметр) Экспорт - - Путь = ПутьКФайлуДанных(); - Возврат ПолучитьЗначениеИзФайла(Параметр, Путь); - -КонецФункции - -Функция ПолучитьДвоичные(Параметр) Экспорт - - Путь = ПутьКФайлуДанных(); - ПараметрЛокальный = Параметр + "Локальный"; - ЗначениеОсновной = ПолучитьЗначениеИзФайла(Параметр , Путь); - ЗначениеЛокальный = ПолучитьЗначениеИзФайла(ПараметрЛокальный, Путь); - - ФайлЛокальный = Новый Файл(ЗначениеЛокальный); - - Если ФайлЛокальный.Существует() Тогда - Значение = Новый ДвоичныеДанные(ЗначениеЛокальный); - Иначе - Значение = ЗначениеОсновной; - КонецЕсли; - - Если ТипЗнч(Значение) = Тип("Строка") Тогда - Значение = ПолучитьФайлПути(Значение, ПараметрЛокальный); - КонецЕсли; - - Возврат Значение; - -КонецФункции - -Функция ПолучитьФайлПути(Знач Путь, ПараметрЛокальный, Знач СохранятьЛокально = Истина) Экспорт - - Если СтрНайти(Путь, "http") > 0 - Или СтрНайти(Путь, "www") > 0 Тогда - - ИВФ = ПолучитьИмяВременногоФайла(); - КопироватьФайл(Путь, ИВФ); - Путь = ИВФ; - Двоичные = Новый ДвоичныеДанные(Путь); - - Если СохранятьЛокально Тогда - ЗаписатьПараметр(ПараметрЛокальный, ИВФ); - Иначе - УдалитьФайлы(ИВФ); - КонецЕсли; - - Иначе - - Двоичные = Новый ДвоичныеДанные(Путь); - - КонецЕсли; - - Возврат Двоичные; - -КонецФункции - -Процедура ЗаписатьПараметр(Параметр, Значение) Экспорт - - Путь = ПутьКФайлуДанных(); - ЗаписатьПараметрВФайл(Параметр, Значение, Путь); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -Функция ПолучитьЗначениеИзФайла(Параметр, Путь) - - Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь); - Возврат ?(Значения.Свойство(Параметр), Значения[Параметр], ""); - -КонецФункции - -Функция ПутьКФайлуДанных() - Возврат "./data.json"; // BSLLS:UsingHardcodePath-off -КонецФункции - -Функция ПолучитьМассивРазделовТестирования() - - МассивРазделов = Новый Массив; - МассивРазделов.Добавить("Телеграм"); - МассивРазделов.Добавить("ВКонтакте"); - МассивРазделов.Добавить("Яндекс.Диск"); - МассивРазделов.Добавить("Google Calendar"); - МассивРазделов.Добавить("Twitter"); - МассивРазделов.Добавить("Viber"); - - Возврат МассивРазделов; - -КонецФункции - -Функция ПолучитьТаблицуТестов() - - Телеграм = "Телеграм"; - ВКонтакте = "ВКонтакте"; - ЯДиск = "Яндекс.Диск"; - Календарь = "Google Calendar"; - Твиттер = "Twitter"; - Вайбер = "Viber"; - - ТаблицаТестов = Новый ТаблицаЗначений; - ТаблицаТестов.Колонки.Добавить("Метод"); - ТаблицаТестов.Колонки.Добавить("Синоним"); - ТаблицаТестов.Колонки.Добавить("Раздел"); - - НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_УдалитьWebhook" , "Удалить Webhook" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ОткрытьЗакрытьГлавнуюТему" , "Открыть/Закрыть главную тему" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм); - НовыйТест(ТаблицаТестов, "Телеграм_СкрытьПоказатьГлавнуюТему" , "Скрыть/Показать главную тему" , Телеграм); - - НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте); - НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте); - - НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск); - НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск); - - НовыйТест(ТаблицаТестов, "ГК_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_ПолучитьТокен" , "Получить токен" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_ОбновитьТокен" , "Обновить токен" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь); - НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокСобытий" , "Получить список событий" , Календарь); - - НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТекстовыйТвит" , "Текстовый твит" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСКартинкой" , "Твит с картинкой" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСВидео" , "Твит с видео" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСГиф" , "Твит с гиф" , Твиттер); - НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСОпросом" , "Твит с опросом" , Твиттер); - - НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьИнформациюОКанале" , "Получить информацию канала" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьОнлайнПользователей" , "Получить онлайн пользователей" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКартинку" , "Отправить картинку" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьФайл" , "Отправить файл" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКонтакт" , "Отправить контакт" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьЛокацию" , "Отправить локацию" , Вайбер); - НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьСсылку" , "Отправить ссылку" , Вайбер); - - Возврат ТаблицаТестов; - -КонецФункции - -Функция ПолучитьОбщийМодуль(Знач Имя) - - Модуль = Вычислить(Имя); // BSLLS:ExecuteExternalCodeInCommonModule-off - - Возврат Модуль; - -КонецФункции - -Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел) - - НовыйТест = ТаблицаЗначений.Добавить(); - НовыйТест.Метод = Метод; - НовыйТест.Синоним = Синоним; - НовыйТест.Раздел = Раздел; - -КонецПроцедуры - -Процедура ЗаписатьПараметрВФайл(Знач Параметр, Знач Значение, Знач Путь) - - Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь); - Значения.Вставить(Параметр, Значение); - - Запись = Новый ЗаписьJSON; - ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб); - Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON); - ЗаписатьJSON(Запись, Значения); - Запись.Закрыть(); - -КонецПроцедуры - -#КонецОбласти - -// BSLLS:Typo-on +// MIT License + +// Copyright (c) 2023 Anton Tsitavets + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +// https://github.com/Bayselonarrend/OpenIntegrations + +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + +// Раскомментировать, если выполняется OneScript +#Использовать "./internal" +#Использовать asserts + +// BSLLS:Typo-off + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ОжидаетЧто(Значение) Экспорт + + Попытка + + Модуль = ПолучитьОбщийМодуль("ЮТест"); + Ожидаем = ТипЗнч(Модуль) = Тип("ОбщийМодуль"); + Возврат Модуль.ОжидаетЧто(Значение); + + Исключение + Возврат Ожидаем.Что(Значение); + КонецПопытки; + +КонецФункции + +Функция СформироватьТестыЯкс() Экспорт + + Модуль = ПолучитьОбщийМодуль("ЮТТесты"); + МассивРазделов = ПолучитьМассивРазделовТестирования(); + ТаблицаТестов = ПолучитьТаблицуТестов(); + + Для Каждого Раздел Из МассивРазделов Цикл + + Отбор = Новый Структура("Раздел", Раздел); + ТестыРаздела = ТаблицаТестов.НайтиСтроки(Отбор); + + Набор = Модуль.ДобавитьТестовыйНабор(Раздел); + + Для Каждого Тест Из ТестыРаздела Цикл + Набор.ДобавитьСерверныйТест(Тест.Метод, Тест.Синоним); + КонецЦикла; + + КонецЦикла; + + Возврат ""; + +КонецФункции + +Функция СформироватьТестыАссертс() Экспорт + + ТаблицаТестов = ПолучитьТаблицуТестов(); + МассивТестов = Новый Массив; + + Для Каждого Тест Из ТаблицаТестов Цикл + МассивТестов.Добавить(Тест.Метод); + КонецЦикла; + + Возврат МассивТестов; + +КонецФункции + +Функция ПолучитьПараметр(Параметр) Экспорт + + Путь = ПутьКФайлуДанных(); + Возврат ПолучитьЗначениеИзФайла(Параметр, Путь); + +КонецФункции + +Функция ПолучитьДвоичные(Параметр) Экспорт + + Путь = ПутьКФайлуДанных(); + ПараметрЛокальный = Параметр + "Локальный"; + ЗначениеОсновной = ПолучитьЗначениеИзФайла(Параметр , Путь); + ЗначениеЛокальный = ПолучитьЗначениеИзФайла(ПараметрЛокальный, Путь); + + ФайлЛокальный = Новый Файл(ЗначениеЛокальный); + + Если ФайлЛокальный.Существует() Тогда + Значение = Новый ДвоичныеДанные(ЗначениеЛокальный); + Иначе + Значение = ЗначениеОсновной; + КонецЕсли; + + Если ТипЗнч(Значение) = Тип("Строка") Тогда + Значение = ПолучитьФайлПути(Значение, ПараметрЛокальный); + КонецЕсли; + + Возврат Значение; + +КонецФункции + +Функция ПолучитьФайлПути(Знач Путь, ПараметрЛокальный, Знач СохранятьЛокально = Истина) Экспорт + + Если СтрНайти(Путь, "http") > 0 + Или СтрНайти(Путь, "www") > 0 Тогда + + ИВФ = ПолучитьИмяВременногоФайла(); + КопироватьФайл(Путь, ИВФ); + Путь = ИВФ; + Двоичные = Новый ДвоичныеДанные(Путь); + + Если СохранятьЛокально Тогда + ЗаписатьПараметр(ПараметрЛокальный, ИВФ); + Иначе + УдалитьФайлы(ИВФ); + КонецЕсли; + + Иначе + + Двоичные = Новый ДвоичныеДанные(Путь); + + КонецЕсли; + + Возврат Двоичные; + +КонецФункции + +Процедура ЗаписатьПараметр(Параметр, Значение) Экспорт + + Путь = ПутьКФайлуДанных(); + ЗаписатьПараметрВФайл(Параметр, Значение, Путь); + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьЗначениеИзФайла(Параметр, Путь) + + Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь); + Возврат ?(Значения.Свойство(Параметр), Значения[Параметр], ""); + +КонецФункции + +Функция ПутьКФайлуДанных() + Возврат "./data.json"; // BSLLS:UsingHardcodePath-off +КонецФункции + +Функция ПолучитьМассивРазделовТестирования() + + МассивРазделов = Новый Массив; + МассивРазделов.Добавить("Телеграм"); + МассивРазделов.Добавить("ВКонтакте"); + МассивРазделов.Добавить("Viber"); + МассивРазделов.Добавить("Twitter"); + МассивРазделов.Добавить("Яндекс.Диск"); + МассивРазделов.Добавить("Google Workspace"); + МассивРазделов.Добавить("Google Calendar"); + МассивРазделов.Добавить("Google Drive"); + + Возврат МассивРазделов; + +КонецФункции + +Функция ПолучитьТаблицуТестов() + + Телеграм = "Телеграм"; + ВКонтакте = "ВКонтакте"; + ЯДиск = "Яндекс.Диск"; + Календарь = "Google Calendar"; + Твиттер = "Twitter"; + Вайбер = "Viber"; + Драйв = "Google Drive"; + ВСпейс = "Google Workspace"; + + ТаблицаТестов = Новый ТаблицаЗначений; + ТаблицаТестов.Колонки.Добавить("Метод"); + ТаблицаТестов.Колонки.Добавить("Синоним"); + ТаблицаТестов.Колонки.Добавить("Раздел"); + + НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьИнформациюБота" , "Получить информацию бота" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьОбновления" , "Получить обновления" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_УстановитьWebhook" , "Установить Webhook" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_УдалитьWebhook" , "Удалить Webhook" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКартинку" , "Отправить картинку" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьВидео" , "Отправить видео" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьАудио" , "Отправить аудио" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьДокумент" , "Отправить документ" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьГифку" , "Отправить гифку" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМедиагруппу" , "Отправить медиагруппу" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьМестоположение" , "Отправить местоположение" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьКонтакт" , "Отправить контакт" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОтправитьОпрос" , "Отправить опрос" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ПереслатьСообщение" , "Переслать сообщение" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_БанРазбан" , "Бан/Разбан" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_СоздатьСсылкуПриглашение" , "Создать ссылку-приглашение" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ЗакрепитьОткрепитьСообщение" , "Закрепить/Открепить сообщение" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьЧислоУчастников" , "Получить число участников" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ПолучитьСписокАватаровФорума", "Получить список аватаров форума", Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_СоздатьУдалитьТемуФорума" , "Создать/Удалить тему форума" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ОткрытьЗакрытьГлавнуюТему" , "Открыть/Закрыть главную тему" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_ИзменитьИмяГлавнойТемы" , "Изменить имя главной темы" , Телеграм); + НовыйТест(ТаблицаТестов, "Телеграм_СкрытьПоказатьГлавнуюТему" , "Скрыть/Показать главную тему" , Телеграм); + + НовыйТест(ТаблицаТестов, "ВК_СоздатьСсылкуТокена" , "Создать ссылку получения токена", ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьУдалитьПост" , "Создать/Удалить пост" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьОпрос" , "Создать опрос" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СохранитьУдалитьКартинку" , "Добавить/Удалить картинку" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьИсторию" , "Создать историю" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_МетодыОбсуждений" , "Действия с обсуждениями" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ЛайкРепостКоммент" , "Лайк/Репост/Комментарий" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистику" , "Получить статистику" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСтатистикуПостов" , "Получить статистику постов" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьРекламнуюКампанию" , "Создать рекламную кампанию" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ОтправитьСообщение" , "Отправить сообщение" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьКатегорииТоваров" , "Получить категории товаров" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварПодборку" , "Создать товар и подборку" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_СоздатьТоварСоСвойствами" , "Создать товар со свойствами" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокТоваров" , "Получить список товаров" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокПодборок" , "Получить список подборок" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокСвойств" , "Получить список свойств" , ВКонтакте); + НовыйТест(ТаблицаТестов, "ВК_ПолучитьСписокЗаказов" , "Получить список заказов" , ВКонтакте); + + НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьИнформациюОДиске" , "Получить информацию о диске" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьПапку" , "Создать папку" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект", "Загрузить по URL и получить" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить файл" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_СоздатьКопиюОбъекта" , "Создать копию объекта" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСсылкуНаСкачивание" , "Получить ссылку на скачивание" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокФайлов" , "Получить список файлов" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ПереместитьОбъект" , "Переместить объект" , ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ДействияПубличныхОбъектов" , "Действия с публичными объектами", ЯДиск); + НовыйТест(ТаблицаТестов, "ЯДиск_ПолучитьСписокОпубликованных" , "Получить список опубликованных" , ЯДиск); + + НовыйТест(ТаблицаТестов, "ГВ_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , ВСпейс); + НовыйТест(ТаблицаТестов, "ГВ_ПолучитьТокен" , "Получить токен" , ВСпейс); + НовыйТест(ТаблицаТестов, "ГВ_ОбновитьТокен" , "Обновить токен" , ВСпейс); + + НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокКалендарей" , "Получить список календарей" , Календарь); + НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьКалендарь" , "Создать/Удалить календарь" , Календарь); + НовыйТест(ТаблицаТестов, "ГК_СоздатьУдалитьСобытие" , "Создать/Удалить событие" , Календарь); + НовыйТест(ТаблицаТестов, "ГК_ПолучитьСписокСобытий" , "Получить список событий" , Календарь); + + НовыйТест(ТаблицаТестов, "ГД_ПолучитьСписокКаталогов" , "Получить список каталогов" , Драйв); + НовыйТест(ТаблицаТестов, "ГД_ЗагрузитьУдалитьФайл" , "Загрузить/Удалить Файл" , Драйв); + НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв); + + НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТекстовыйТвит" , "Текстовый твит" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСКартинкой" , "Твит с картинкой" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСВидео" , "Твит с видео" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСГиф" , "Твит с гиф" , Твиттер); + НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТвитСОпросом" , "Твит с опросом" , Твиттер); + + НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьИнформациюОКанале" , "Получить информацию канала" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьДанныеПользователя" , "Получить данные пользователя" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ПолучитьОнлайнПользователей" , "Получить онлайн пользователей" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьТекстовоеСообщение" , "Отправить текстовое сообщение" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКартинку" , "Отправить картинку" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьФайл" , "Отправить файл" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьКонтакт" , "Отправить контакт" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьЛокацию" , "Отправить локацию" , Вайбер); + НовыйТест(ТаблицаТестов, "Вайбер_ОтправитьСсылку" , "Отправить ссылку" , Вайбер); + + Возврат ТаблицаТестов; + +КонецФункции + +Функция ПолучитьОбщийМодуль(Знач Имя) + + + + Модуль = Вычислить(Имя); // BSLLS:ExecuteExternalCodeInCommonModule-off + + + + Возврат Модуль; + +КонецФункции + +Процедура НовыйТест(ТаблицаЗначений, Знач Метод, Знач Синоним, Знач Раздел) + + НовыйТест = ТаблицаЗначений.Добавить(); + НовыйТест.Метод = Метод; + НовыйТест.Синоним = Синоним; + НовыйТест.Раздел = Раздел; + +КонецПроцедуры + +Процедура ЗаписатьПараметрВФайл(Знач Параметр, Знач Значение, Знач Путь) + + Значения = OPI_Инструменты.ПрочитатьJSONФайл(Путь); + Значения.Вставить(Параметр, Значение); + + Запись = Новый ЗаписьJSON; + ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, Символы.Таб); + Запись.ОткрытьФайл(Путь, , , ПараметрыЗаписиJSON); + ЗаписатьJSON(Запись, Значения); + Запись.Закрыть(); + +КонецПроцедуры + +#КонецОбласти diff --git a/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os b/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os index 3646165e23..4aa6b33e27 100644 --- a/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os +++ b/OInt/tools/Modules/internal/Modules/OPI_Инструменты.os @@ -21,8 +21,10 @@ // SOFTWARE. // https://github.com/Bayselonarrend/OpenIntegrations + // BSLLS:Typo-off // BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off #Область СлужебныйПрограммныйИнтерфейс @@ -78,10 +80,14 @@ КонецФункции -Функция PostMultipartRelated(Знач URL, Знач JSON, Знач Файлы, Знач ДопЗаголовки) Экспорт +Функция PostMultipartRelated(Знач URL, Знач JSON = "", Знач Файлы = "", Знач ДопЗаголовки = "") Экспорт Возврат ВыполнитьЗапросМультипартРелэйтед(URL, "POST", JSON, Файлы, ДопЗаголовки); КонецФункции +Функция PatchMultipartRelated(Знач URL, Знач JSON = "", Знач Файлы = "", Знач ДопЗаголовки = "") Экспорт + Возврат ВыполнитьЗапросМультипартРелэйтед(URL, "PATCH", JSON, Файлы, ДопЗаголовки); +КонецФункции + #КонецОбласти Функция ПараметрыЗапросаВСоответствие(Знач СтрокаПараметров) Экспорт @@ -369,7 +375,7 @@ КонецФункции -Функция ВыполнитьЗапросМультипартРелэйтед(URL, Вид, JSON, Файлы, ДопЗаголовки) +Функция ВыполнитьЗапросМультипартРелэйтед(URL, Вид, JSON = "", Файлы = "", ДопЗаголовки = "") Переадресация = 300; Ошибка = 400; @@ -567,6 +573,10 @@ Процедура ЗаписатьФайлыРелэйтед(ЗаписьТекста, Знач Boundary, Знач Файлы) + Если Не ЗначениеЗаполнено(Файлы) Тогда + Возврат; + КонецЕсли; + РазделительСтрок = Символы.ВК + Символы.ПС; Для Каждого Файл Из Файлы Цикл @@ -585,6 +595,10 @@ Процедура ЗаписатьJSONМультипарт(ЗаписьТекста, Знач Boundary, Знач JSON) + Если Не ЗначениеЗаполнено(JSON) Тогда + Возврат; + КонецЕсли; + РазделительСтрок = Символы.ВК + Символы.ПС; ЗаписьТекста.ЗаписатьСтроку("--" + boundary + РазделительСтрок); @@ -836,9 +850,6 @@ КонецФункции -// BSLLS:LatinAndCyrillicSymbolInWord-on -// BSLLS:Typo-on - #КонецОбласти #КонецОбласти diff --git a/OInt/tools/Modules/internal/Modules/OPI_Криптография.os b/OInt/tools/Modules/internal/Modules/OPI_Криптография.os index 312f807da5..f95888ef59 100644 --- a/OInt/tools/Modules/internal/Modules/OPI_Криптография.os +++ b/OInt/tools/Modules/internal/Modules/OPI_Криптография.os @@ -22,6 +22,9 @@ // https://github.com/Bayselonarrend/OpenIntegrations +// BSLLS:LatinAndCyrillicSymbolInWord-off +// BSLLS:IncorrectLineBreak-off + #Область СлужебныйПрограммныйИнтерфейс #Область БСП @@ -92,7 +95,7 @@ Части = Новый Массив(Количество); // BSLLS:UnusedLocalVariable-off - Для к = 1 По Количество Цикл + Для К = 1 По Количество Цикл Части.Добавить(Строка); КонецЦикла; // BSLLS:UnusedLocalVariable-on diff --git a/data.json.gpg b/data.json.gpg index 8bd6c6312c..b3a083ba4d 100644 Binary files a/data.json.gpg and b/data.json.gpg differ