From c5e0d2cce433f24407930e75b62f646bdd3eb7d9 Mon Sep 17 00:00:00 2001 From: Bayselonarrend Date: Thu, 14 Mar 2024 20:08:51 +0000 Subject: [PATCH] Apply automatic changes --- OInt/core/Modules/OPI_GoogleCalendar.os | 3 + OInt/core/Modules/OPI_GoogleDrive.os | 113 +++- OInt/core/Modules/OPI_GoogleWorkspace.os | 3 + OInt/core/Modules/OPI_Notion.os | 3 + OInt/core/Modules/OPI_Telegram.os | 5 +- OInt/core/Modules/OPI_Twitter.os | 8 +- OInt/core/Modules/OPI_VK.os | 9 +- OInt/core/Modules/OPI_Viber.os | 3 + OInt/core/Modules/OPI_YandexDisk.os | 3 + OInt/core/Modules/OPI_YandexID.os | 3 + OInt/tests/Modules/internal/OPI_Тесты.os | 45 +- .../Modules/OPI_ПолучениеДанныхТестов.os | 626 +++++++++--------- .../internal/Modules/OPI_Инструменты.os | 21 +- .../internal/Modules/OPI_Криптография.os | 5 +- data.json.gpg | Bin 2511 -> 2506 bytes 15 files changed, 497 insertions(+), 353 deletions(-) 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 8bd6c6312cd8bf16aee2bccd2b343bc567b51561..b3a083ba4d4838dc0859db4ef6538ddc14c39683 100644 GIT binary patch literal 2506 zcmV;*2{rbN4Fm}T0>yaTdcqL)LN0)y zEXH5Y+H0|_A0%-apg@Ah`862ZXg;KKZAF=k=d(wK`d<hMbZ^4J|2ru zLogyAE~Bj)rWt;E2%jf<6ohd#5ES(HjQ-X9{=iFdb9(EEa^txbZ@UJu{^k9xq@OD-2O)X~x< zk0XQ+0hV2p3l}pjI!6ftWwk4_P6 z($ili-GAnI`7kY;hh->=sWJ3KJ9C;gu@&AvMcmeNs?Sqz07PJIGI_Udct(Eanvw~1 zh*wM_pN3C^O*gwx?noGusf^8@*veOJk6q&T`>$JGl@C(HRMrfPR?czD5YjS6PD^NQ zQ9sh#dcCf?KtgxZUK_OS$%4Ul7&TVXXlxk&z7!yY9*jM!F2)6=8@Q;j=Ft;H1vU{k z7y5DUFVI>n4S;}0oLABPub8eW!Ieu`-3Hy9WpLa_9wm9R%Dr??mihHqN0^8G>$6Qr zi{=SYpX$Hozv7WJ>;vbR$=yS{O~Psc5=fX?YRgmOTXNhO%Ro)zPCcvP-<(N4qNKWle?-UF^C{Zap8p!;ost zc_tIp2O*W-VSF2%mGYfsyS>9IfSv?ktdWUMpf}L|y3mKp{bbN4Flfk}BNTkRi>=SQ z6ru~&_&P{J5dQ3<4(@63@P;+#CZ^1&%DK;RwSN}UlC)sKv}Q#ab%bZ{IILEWA;)<}DG`DvxY zSISE%z_@yi*6}LO4R5CS%xBwpGSv5+Q?PHYgN#2KT`ub}!Qm@tG27}J+#eG>yLpu= zWC+tg8Y00fRl5YIKb6CTDssw$3U^5UOp-y4N`=?@ZMYa5;&ML&(Q4 zHpr(lRR$`|#M4yl4nO2T6K@Tk>@}ERPHI4htU^OIX+FnbB|-Z{`7LWKs;%&%NXOj!C$N7*q<7{v*cA?^^<_r_ZY0CT1{aE?^O#+X zM97i@=D>S%_RAym<7vTyFX$@VldEu#e}wiB_2Fa?819t93J(G9%i0SrCRqKeP$&Y9 zcf$B|Ln_38(7%P=r>`42ME|XdPc0zHdC3~50V#-mXUY1umNcDFHneK*gTKDxu!1uEtO;FGg zBTX6OGmf&5G)t8yUEHAq@=oLPUg@bjRt6Jm=ctd{vFZ*R4Dx{vn|>83@cY4Nb92j< zr;N-ygaGs(t!tKit3?in44;5T%qc0g(@8=vIpxpDfLC8MPWqI#k#o3hkvRcX`O79 zjc!16wB>J#_Yzh;hh=?o!UI zb&JqgOfnB;?|7I$CQ*tP@RX$vmha~8(oMqvfW8MAE`867!6-<4NLg2!!6)DGlWWf^ z0@J5b!ItaVO9*|K`>!lkoGeq-xr;pEwm6v^c6z||Q;};U`mROR&)HCWtzn&kMq3=S zS;eyI9m(WHI2Z70=RwtA9$IRYB?scDxFH2s{F zoGEpjakfMA>SogmpF&yG>f^-Qly=hDvm}+R=$#6$Nn)Y=9}jmfmO4KhwoA|qWrNcP UA?Gn74E_$~Ckd%wq08JjW=n3>f&c&j literal 2511 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 ZgFTLS15)rKkkz~~4xkrdd|5lH-k5V))*%1@