1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

PXY: Обновление ключа

This commit is contained in:
Anton Titovets
2025-02-04 22:23:05 +03:00
parent eb84c9e940
commit 61569a9c91
8 changed files with 6960 additions and 6636 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -387,6 +387,44 @@
КонецФункции
// Обновить ключ обработчика
// Заменяет ключ обработчика на новый
//
// Параметры:
// Проект - Строка - Путь к файлу проекта - proj
// КлючОбработчика - Строка - Ключ обработчика - handler
// НовыйКлюч - Строка - Свой ключ, если необходимо. Стандартный UUID по умолчанию - key
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация об обработчике
Функция ОбновитьКлючОбработчика(Знач Проект, Знач КлючОбработчика, Знач НовыйКлюч = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(КлючОбработчика);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйКлюч);
Результат = ПроверитьСуществованиеПроекта(Проект);
Если Не Результат["result"] Тогда
Возврат Результат;
Иначе
Проект = Результат["path"];
КонецЕсли;
НовыйКлюч = ?(ЗначениеЗаполнено(НовыйКлюч), НовыйКлюч, ПолучитьUUID(9));
СтруктураЗаписи = Новый Структура("key", НовыйКлюч);
Результат = ИзменитьПоляОбработчика(Проект, КлючОбработчика, СтруктураЗаписи);
Если Не Результат["result"] Тогда
Возврат Результат;
КонецЕсли;
Результат = ПолучитьОбработчикЗапросов(Проект, НовыйКлюч);
Возврат Результат;
КонецФункции
#КонецОбласти
#Область УстановкаАргументов
@@ -595,6 +633,7 @@
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
ИначеЕсли Ключ = "ТаблицаАргументов" Тогда Возврат "arguments"
ИначеЕсли Ключ = "ТаблицаНастроек" Тогда Возврат "settings"
Иначе Возврат "" КонецЕсли;
@@ -606,6 +645,10 @@
МассивИмен.Добавить("ТаблицаОбработчиков");
МассивИмен.Добавить("ТаблицаАргументов");
Если Не ТолькоОбработчики Тогда
МассивИмен.Добавить("ТаблицаНастроек");
КонецЕсли;
Возврат МассивИмен;
КонецФункции
@@ -629,6 +672,13 @@
Возврат Результат;
КонецЕсли;
Результат = СоздатьТаблицуНастроек(Путь);
Если Не Результат["result"] Тогда
УдалитьФайлы(Путь);
Возврат Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -664,6 +714,19 @@
КонецФункции
Функция СоздатьТаблицуНастроек(Путь)
СтруктураТаблицы = Новый Соответствие();
СтруктураТаблицы.Вставить("name" , "TEXT PRIMARY KEY NOT NULL UNIQUE");
СтруктураТаблицы.Вставить("value" , "TEXT");
ИмяТаблицыАргументов = КонстантноеЗначение("ТаблицаНастроек");
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыАргументов, СтруктураТаблицы, Путь);
Возврат Результат;
КонецФункции
Функция ПолучитьУникальныйКлючОбработчика(Путь)
СекретныйКлюч = ПолучитьUUID(9);

View File

@@ -2328,6 +2328,9 @@
ПроксиИнтеграций_ИзменитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ОтключитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ВключитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ОбновитьКлючОбработчика(ПараметрыТеста);
ПроксиИнтеграций_УстановитьАргументОбработчика(ПараметрыТеста);
ПроксиИнтеграций_ПолучитьАргументыОбработчика(ПараметрыТеста);
ПроксиИнтеграций_УдалитьОбработчикЗапросов(ПараметрыТеста);
Попытка
@@ -17329,6 +17332,79 @@
КонецПроцедуры
Процедура ПроксиИнтеграций_ОбновитьКлючОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
НовыйКлюч = "mykey";
// Свой ключ
Результат = OPI_ПроксиИнтеграций.ОбновитьКлючОбработчика(Проект, КлючОбработчика, НовыйКлюч);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьКлючОбработчика", "ПроксиИнтеграций"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_ПроксиКлюч(Результат, НовыйКлюч, Истина); // SKIP
// Новый случайный ключ
Результат = OPI_ПроксиИнтеграций.ОбновитьКлючОбработчика(Проект, НовыйКлюч);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьКлючОбработчика (рандом)", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_ПроксиКлюч(Результат, НовыйКлюч, Ложь);
Ключ = Результат["data"]["key"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Proxy_HandlerKey", Ключ);
OPI_Инструменты.ДобавитьПоле("Proxy_HandlerKey", Ключ, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура ПроксиИнтеграций_УстановитьАргументОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
Аргумент = "token";
Значение = "12345";
Результат = OPI_ПроксиИнтеграций.УстановитьАргументОбработчика(Проект
, КлючОбработчика
, Аргумент
, Значение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьАргументОбработчика", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"]["args"], 1);
OPI_ПолучениеДанныхТестов.Проверка_Истина(Результат["data"]["args"][0]["strict"]);
Результат = OPI_ПроксиИнтеграций.УстановитьАргументОбработчика(Проект
, КлючОбработчика
, "another"
, Значение
, Ложь);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьАргументОбработчика (не строгий)", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"]["args"], 2);
OPI_ПолучениеДанныхТестов.Проверка_Ложь(Результат["data"]["args"][1]["strict"]);
КонецПроцедуры
Процедура ПроксиИнтеграций_ПолучитьАргументыОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
Результат = OPI_ПроксиИнтеграций.ПолучитьАргументыОбработчика(Проект, КлючОбработчика);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьАргументыОбработчика", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 2);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -619,10 +619,18 @@
Процедура Проверка_Истина(Знач Результат) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Результат);
ОжидаетЧто(Результат).Равно(Истина);
КонецПроцедуры
Процедура Проверка_Ложь(Знач Результат) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Результат);
ОжидаетЧто(Результат).Равно(Ложь);
КонецПроцедуры
Процедура Проверка_ТелеграмИстина(Знач Результат) Экспорт
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
@@ -2133,6 +2141,15 @@
КонецПроцедуры
Процедура Проверка_ПроксиКлюч(Знач Результат, Знач Ключ, Знач Равно) Экспорт
ТекущийКлюч = Результат["data"]["key"];
Равенство = ТекущийКлюч = Ключ;
ОжидаетЧто(Равенство).Равно(Равно);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -619,10 +619,18 @@
Процедура Проверка_Истина(Знач Результат) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Результат);
ОжидаетЧто(Результат).Равно(Истина);
КонецПроцедуры
Процедура Проверка_Ложь(Знач Результат) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Результат);
ОжидаетЧто(Результат).Равно(Ложь);
КонецПроцедуры
Процедура Проверка_ТелеграмИстина(Знач Результат) Экспорт
ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
@@ -2133,6 +2141,15 @@
КонецПроцедуры
Процедура Проверка_ПроксиКлюч(Знач Результат, Знач Ключ, Знач Равно) Экспорт
ТекущийКлюч = Результат["data"]["key"];
Равенство = ТекущийКлюч = Ключ;
ОжидаетЧто(Равенство).Равно(Равно);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -387,6 +387,44 @@
КонецФункции
// Обновить ключ обработчика
// Заменяет ключ обработчика на новый
//
// Параметры:
// Проект - Строка - Путь к файлу проекта - proj
// КлючОбработчика - Строка - Ключ обработчика - handler
// НовыйКлюч - Строка - Свой ключ, если необходимо. Новый стандартный UUID по умолчанию - key
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Информация об обработчике
Функция ОбновитьКлючОбработчика(Знач Проект, Знач КлючОбработчика, Знач НовыйКлюч = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(КлючОбработчика);
OPI_ПреобразованиеТипов.ПолучитьСтроку(НовыйКлюч);
Результат = ПроверитьСуществованиеПроекта(Проект);
Если Не Результат["result"] Тогда
Возврат Результат;
Иначе
Проект = Результат["path"];
КонецЕсли;
НовыйКлюч = ?(ЗначениеЗаполнено(НовыйКлюч), НовыйКлюч, ПолучитьUUID(9));
СтруктураЗаписи = Новый Структура("key", НовыйКлюч);
Результат = ИзменитьПоляОбработчика(Проект, КлючОбработчика, СтруктураЗаписи);
Если Не Результат["result"] Тогда
Возврат Результат;
КонецЕсли;
Результат = ПолучитьОбработчикЗапросов(Проект, НовыйКлюч);
Возврат Результат;
КонецФункции
#КонецОбласти
#Область УстановкаАргументов
@@ -595,6 +633,7 @@
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
ИначеЕсли Ключ = "ТаблицаАргументов" Тогда Возврат "arguments"
ИначеЕсли Ключ = "ТаблицаНастроек" Тогда Возврат "settings"
Иначе Возврат "" КонецЕсли;
@@ -606,6 +645,10 @@
МассивИмен.Добавить("ТаблицаОбработчиков");
МассивИмен.Добавить("ТаблицаАргументов");
Если Не ТолькоОбработчики Тогда
МассивИмен.Добавить("ТаблицаНастроек");
КонецЕсли;
Возврат МассивИмен;
КонецФункции
@@ -629,6 +672,13 @@
Возврат Результат;
КонецЕсли;
Результат = СоздатьТаблицуНастроек(Путь);
Если Не Результат["result"] Тогда
УдалитьФайлы(Путь);
Возврат Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -664,6 +714,19 @@
КонецФункции
Функция СоздатьТаблицуНастроек(Путь)
СтруктураТаблицы = Новый Соответствие();
СтруктураТаблицы.Вставить("name" , "TEXT PRIMARY KEY NOT NULL UNIQUE");
СтруктураТаблицы.Вставить("value" , "TEXT");
ИмяТаблицыАргументов = КонстантноеЗначение("ТаблицаНастроек");
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыАргументов, СтруктураТаблицы, Путь);
Возврат Результат;
КонецФункции
Функция ПолучитьУникальныйКлючОбработчика(Путь)
СекретныйКлюч = ПолучитьUUID(9);

View File

@@ -2328,6 +2328,9 @@
ПроксиИнтеграций_ИзменитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ОтключитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ВключитьОбработчикЗапросов(ПараметрыТеста);
ПроксиИнтеграций_ОбновитьКлючОбработчика(ПараметрыТеста);
ПроксиИнтеграций_УстановитьАргументОбработчика(ПараметрыТеста);
ПроксиИнтеграций_ПолучитьАргументыОбработчика(ПараметрыТеста);
ПроксиИнтеграций_УдалитьОбработчикЗапросов(ПараметрыТеста);
Попытка
@@ -17329,6 +17332,79 @@
КонецПроцедуры
Процедура ПроксиИнтеграций_ОбновитьКлючОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
НовыйКлюч = "mykey";
// Свой ключ
Результат = OPI_ПроксиИнтеграций.ОбновитьКлючОбработчика(Проект, КлючОбработчика, НовыйКлюч);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьКлючОбработчика", "ПроксиИнтеграций"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_ПроксиКлюч(Результат, НовыйКлюч, Истина); // SKIP
// Новый случайный ключ
Результат = OPI_ПроксиИнтеграций.ОбновитьКлючОбработчика(Проект, НовыйКлюч);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьКлючОбработчика (рандом)", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_ПроксиКлюч(Результат, НовыйКлюч, Ложь);
Ключ = Результат["data"]["key"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Proxy_HandlerKey", Ключ);
OPI_Инструменты.ДобавитьПоле("Proxy_HandlerKey", Ключ, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура ПроксиИнтеграций_УстановитьАргументОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
Аргумент = "token";
Значение = "12345";
Результат = OPI_ПроксиИнтеграций.УстановитьАргументОбработчика(Проект
, КлючОбработчика
, Аргумент
, Значение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьАргументОбработчика", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"]["args"], 1);
OPI_ПолучениеДанныхТестов.Проверка_Истина(Результат["data"]["args"][0]["strict"]);
Результат = OPI_ПроксиИнтеграций.УстановитьАргументОбработчика(Проект
, КлючОбработчика
, "another"
, Значение
, Ложь);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьАргументОбработчика (не строгий)", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"]["args"], 2);
OPI_ПолучениеДанныхТестов.Проверка_Ложь(Результат["data"]["args"][1]["strict"]);
КонецПроцедуры
Процедура ПроксиИнтеграций_ПолучитьАргументыОбработчика(ПараметрыФункции)
Проект = ПараметрыФункции["Proxy_ProjectPath"];
КлючОбработчика = ПараметрыФункции["Proxy_HandlerKey"];
Результат = OPI_ПроксиИнтеграций.ПолучитьАргументыОбработчика(Проект, КлючОбработчика);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьАргументыОбработчика", "ПроксиИнтеграций");
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 2);
КонецПроцедуры
#КонецОбласти
#КонецОбласти