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

Update ObjectModule.bsl

This commit is contained in:
Anton Titovets
2025-02-02 19:52:36 +03:00
parent bd96b824a3
commit a4ed25830a

View File

@@ -53,19 +53,25 @@
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
Попытка
ОбработатьЗапрос(Контекст);
Результат = ОбработатьЗапрос(Контекст);
Исключение
Ошибка = ОписаниеОшибки();
Ошибка = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
Контекст.Ответ.КодСостояния = 500;
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, "OneScript exception: " + Ошибка));
КонецПопытки
Результат = Новый Структура("result,error", Ложь, "OneScript exception: " + Ошибка);
КонецПопытки;
JSON = OPI_Инструменты.JSONСтрокой(Результат);
Контекст.Ответ.ТипКонтента = "application/json;charset=UTF8";
Контекст.Ответ.Записать(JSON);
КонецПроцедуры
Процедура ОбработатьЗапрос(Контекст)
Функция ОбработатьЗапрос(Контекст)
Путь = Контекст.Запрос.Путь;
@@ -79,36 +85,39 @@
Обработчик = ОписаниеОбработчика["data"];
Обработчик = ?(ТипЗнч(Обработчик) = Тип("Массив"), Обработчик[0], Обработчик);
ВыполнитьОбработку(Контекст, Обработчик);
Результат = ВыполнитьОбработку(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 404, "Handler not found!");
Результат = ОшибкаОбработки(Контекст, 404, "Handler not found!");
КонецЕсли;
КонецПроцедуры
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ВыполнитьОбработку(Контекст, Обработчик)
Функция ВыполнитьОбработку(Контекст, Обработчик)
Метод = вРег(Контекст.Запрос.Метод);
Если Не Метод = вРег(Обработчик["method"]) Тогда
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
Возврат;
Возврат ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
КонецЕсли;
Если Метод = "GET" Тогда
ВыполнитьОбработкуGet(Контекст, Обработчик);
Результат = ВыполнитьОбработкуGet(Контекст, Обработчик);
Иначе
ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
Результат = ОшибкаОбработки(Контекст, 405, "Method not allowed for this handler");
КонецЕсли;
КонецПроцедуры
Возврат Результат;
Процедура ВыполнитьОбработкуGet(Контекст, Обработчик)
КонецФункции
Функция ВыполнитьОбработкуGet(Контекст, Обработчик)
Запрос = Контекст.Запрос;
Параметры = Запрос.Параметры;
@@ -148,14 +157,14 @@
КотелПараметров.Вставить(Аргумент.Ключ, Аргумент.Значение);
КонецЦикла;
ВыполнитьУниверсальнуюОбработку(Контекст
Возврат ВыполнитьУниверсальнуюОбработку(Контекст
, Обработчик["library"]
, Обработчик["function"]
, КотелПараметров);
КонецПроцедуры
КонецФункции
Процедура ВыполнитьУниверсальнуюОбработку(Контекст, Команда, Метод, Параметры)
Функция ВыполнитьУниверсальнуюОбработку(Контекст, Команда, Метод, Параметры)
СтруктураВыполнения = ОбъектОПИ.СформироватьСтрокуВызоваМетода(Параметры, Команда, Метод);
@@ -174,15 +183,16 @@
КонецЕсли;
Контекст.Ответ.ЗаписатьКакJson(Ответ);
Возврат Ответ;
КонецПроцедуры
КонецФункции
Процедура ОшибкаОбработки(Контекст, Код, Текст)
Функция ОшибкаОбработки(Контекст, Код, Текст)
Контекст.Ответ.КодСостояния = Код;
Контекст.Ответ.ЗаписатьКакJson(Новый Структура("result,error", Ложь, Текст));
КонецПроцедуры
Возврат Новый Структура("result,error", Ложь, Текст);
КонецФункции
#КонецОбласти