You've already forked OpenIntegrations
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:
@@ -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", Ложь, Текст);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
Reference in New Issue
Block a user