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-01 23:58:35 +03:00
parent 532b4ed029
commit 2961f82567
6 changed files with 6652 additions and 6553 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -221,7 +221,12 @@
Если Результат["result"] Тогда
Для Каждого Элемент Из Результат["data"] Цикл
Элемент.Вставить("args", ПолучитьАргументыОбработчика(Проект, КлючОбработчика));
Аргументы = ПолучитьАргументыОбработчика(Проект, КлючОбработчика);
Аргументы = ?(Аргументы["result"], Аргументы["data"], Аргументы);
Элемент.Вставить("args", Аргументы);
КонецЦикла;
КоличествоЗаписей = Результат["data"].Количество();
@@ -687,7 +692,7 @@
КонецФункции
Функция ПолучитьUUID(Знач Длина)
Возврат вРег(Лев(СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""), Длина));
Возврат Лев(СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""), Длина);
КонецФункции
Функция ИзменитьПоляОбработчика(Знач Проект, Знач КлючОбработчика, Знач СтруктураЗаписи)

View File

@@ -59,7 +59,7 @@
Ошибка = ОписаниеОшибки();
Контекст.Ответ.КодСостояния = 500;
Контекст.Ответ.Записать(Ошибка);
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, Ошибка));
КонецПопытки
@@ -69,13 +69,55 @@
Путь = Контекст.Запрос.Путь;
Путь = ?(СтрНачинаетсяС(Путь , "/") , Прав(Путь, СтрДлина(Путь - 1)) , Путь);
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/") , Лев(Путь , СтрДлина(Путь - 1)) , Путь);
Путь = ?(СтрНачинаетсяС(Путь , "/") , Прав(Путь, СтрДлина(Путь) - 1) , Путь);
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/") , Лев(Путь , СтрДлина(Путь) - 1) , Путь);
ОписаниеОбработчика = МодульПрокси.ПолучитьОбработчикЗапросов(ПутьПроекта, Путь);
Контекст.Ответ.КодСостояния = 200;
Контекст.Ответ.Записать("Hello world!");
Если ОписаниеОбработчика["result"] Тогда
Обработчик = ОписаниеОбработчика["data"];
Обработчик = ?(ТипЗнч(Обработчик) = Тип("Массив"), Обработчик[0], Обработчик);
ВыполнитьОбработку(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 404, "Handler not found!");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ВыполнитьОбработку(Контекст, Обработчик)
Метод = вРег(Контекст.Запрос.Метод);
Если Не Метод = вРег(Обработчик["method"]) Тогда
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
Возврат;
КонецЕсли;
Если Метод = "GET" Тогда
ВыполнитьОбработкуGet(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
КонецЕсли;
КонецПроцедуры
Процедура ВыполнитьОбработкуGet(Контекст, Обработчик)
Контекст.Ответ.ЗаписатьКакJson(Обработчик);
КонецПроцедуры
Процедура ОшибкаОбработки(Контекст, Код, Текст)
Контекст.Ответ.КодСостояния = Код;
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, Текст));
КонецПроцедуры

View File

@@ -221,7 +221,12 @@
Если Результат["result"] Тогда
Для Каждого Элемент Из Результат["data"] Цикл
Элемент.Вставить("args", ПолучитьАргументыОбработчика(Проект, КлючОбработчика));
Аргументы = ПолучитьАргументыОбработчика(Проект, КлючОбработчика);
Аргументы = ?(Аргументы["result"], Аргументы["data"], Аргументы);
Элемент.Вставить("args", Аргументы);
КонецЦикла;
КоличествоЗаписей = Результат["data"].Количество();
@@ -687,7 +692,7 @@
КонецФункции
Функция ПолучитьUUID(Знач Длина)
Возврат вРег(Лев(СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""), Длина));
Возврат Лев(СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", ""), Длина);
КонецФункции
Функция ИзменитьПоляОбработчика(Знач Проект, Знач КлючОбработчика, Знач СтруктураЗаписи)

View File

@@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
// OneScript: ./OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
// MIT License
@@ -59,7 +59,7 @@
Ошибка = ОписаниеОшибки();
Контекст.Ответ.КодСостояния = 500;
Контекст.Ответ.Записать(Ошибка);
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, Ошибка));
КонецПопытки
@@ -69,13 +69,55 @@
Путь = Контекст.Запрос.Путь;
Путь = ?(СтрНачинаетсяС(Путь , "/") , Прав(Путь, СтрДлина(Путь - 1)) , Путь);
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/") , Лев(Путь , СтрДлина(Путь - 1)) , Путь);
Путь = ?(СтрНачинаетсяС(Путь , "/") , Прав(Путь, СтрДлина(Путь) - 1) , Путь);
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/") , Лев(Путь , СтрДлина(Путь) - 1) , Путь);
ОписаниеОбработчика = МодульПрокси.ПолучитьОбработчикЗапросов(ПутьПроекта, Путь);
Контекст.Ответ.КодСостояния = 200;
Контекст.Ответ.Записать("Hello world!");
Если ОписаниеОбработчика["result"] Тогда
Обработчик = ОписаниеОбработчика["data"];
Обработчик = ?(ТипЗнч(Обработчик) = Тип("Массив"), Обработчик[0], Обработчик);
ВыполнитьОбработку(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 404, "Handler not found!");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ВыполнитьОбработку(Контекст, Обработчик)
Метод = вРег(Контекст.Запрос.Метод);
Если Не Метод = вРег(Обработчик["method"]) Тогда
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
Возврат;
КонецЕсли;
Если Метод = "GET" Тогда
ВыполнитьОбработкуGet(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
КонецЕсли;
КонецПроцедуры
Процедура ВыполнитьОбработкуGet(Контекст, Обработчик)
Контекст.Ответ.ЗаписатьКакJson(Обработчик);
КонецПроцедуры
Процедура ОшибкаОбработки(Контекст, Код, Текст)
Контекст.Ответ.КодСостояния = Код;
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, Текст));
КонецПроцедуры