mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-04-23 12:18:48 +02:00
PXY: вынос обработчика в класс
This commit is contained in:
parent
9fa5c429ee
commit
e4ca38c5a7
13087
service/dictionaries/en.json
vendored
13087
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
40
src/ru/OInt/core/Modules/OPI_ПроксиИнтеграций.os
vendored
40
src/ru/OInt/core/Modules/OPI_ПроксиИнтеграций.os
vendored
@ -70,6 +70,10 @@
|
||||
// Структура Из КлючИЗначение - Результат остановки сервера
|
||||
Функция ЗапуститьПроект(Знач Порт, Знач Проект) Экспорт
|
||||
|
||||
Если Не OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
ВызватьИсключение "Данная функция доступна для вызова только в OneScript!";
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
|
||||
|
||||
Результат = ПроверитьСуществованиеПроекта(Проект);
|
||||
@ -85,9 +89,13 @@
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
ПараметрыСервера[0] = Порт;
|
||||
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
Обработчик = Новый("OPI_ОбработчикЗапросовПрокси");
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(OPI_ПроксиИнтеграций, "ОсновнаяОбработка");
|
||||
Обработчик.ПутьПроекта = Проект;
|
||||
Обработчик.МодульПрокси = ЭтотОбъект;
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
|
||||
ВебСервер.Запустить();
|
||||
|
||||
Возврат СформироватьОтвет(Истина, "Stopped");
|
||||
@ -730,32 +738,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Обработчики
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
// Путь = Контекст.Запрос.Путь;
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
1
src/ru/OInt/lib.config
vendored
1
src/ru/OInt/lib.config
vendored
@ -29,4 +29,5 @@
|
||||
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>
|
||||
<module name="OPI_ПреобразованиеТипов" file="tools/Modules/OPI_ПреобразованиеТипов.os"/>
|
||||
<module name="OPI_ПроксиИнтеграций" file="core/Modules/OPI_ПроксиИнтеграций.os"/>
|
||||
<module name="OPI_ОбработчикЗапросовПрокси" file="tools/Classes/OPI_ОбработчикЗапросовПрокси.os"/>
|
||||
</package-def>
|
||||
|
@ -16451,7 +16451,7 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСобытиеКалендаря (хук)", "Bitrix24"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксИстина(Результат); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксСоответствие(Результат); // SKIP
|
||||
|
||||
URL = ПараметрыФункции["Bitrix24_Domain"];
|
||||
Токен = ПараметрыФункции["Bitrix24_Token"];
|
||||
@ -16465,7 +16465,7 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСобытиеКалендаря", "Bitrix24");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксСоответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
82
src/ru/OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
vendored
Normal file
82
src/ru/OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
// OneScript: ./OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
|
||||
|
||||
// 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check use-non-recommended-method
|
||||
//@skip-check module-accessibility-at-client
|
||||
//@skip-check object-module-export-variable
|
||||
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
|
||||
Перем ПутьПроекта Экспорт;
|
||||
Перем МодульПрокси Экспорт;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
Путь = Контекст.Запрос.Путь;
|
||||
|
||||
Путь = ?(СтрНачинаетсяС(Путь, "/") , Прав(Путь, СтрДлина(Путь - 1)), Путь);
|
||||
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/"), Лев(Путь, СтрДлина(Путь - 1)) , Путь);
|
||||
|
||||
ОписаниеОбработчика = МодульПрокси.ПолучитьОбработчикЗапросов(ПутьПроекта, Путь);
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -70,6 +70,10 @@
|
||||
// Структура Из КлючИЗначение - Результат остановки сервера
|
||||
Функция ЗапуститьПроект(Знач Порт, Знач Проект) Экспорт
|
||||
|
||||
Если Не OPI_Инструменты.ЭтоOneScript() Тогда
|
||||
ВызватьИсключение "Данная функция доступна для вызова только в OneScript!";
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
|
||||
|
||||
Результат = ПроверитьСуществованиеПроекта(Проект);
|
||||
@ -85,9 +89,13 @@
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
ПараметрыСервера[0] = Порт;
|
||||
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
Обработчик = Новый("OPI_ОбработчикЗапросовПрокси");
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(OPI_ПроксиИнтеграций, "ОсновнаяОбработка");
|
||||
Обработчик.ПутьПроекта = Проект;
|
||||
Обработчик.МодульПрокси = ЭтотОбъект;
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
|
||||
ВебСервер.Запустить();
|
||||
|
||||
Возврат СформироватьОтвет(Истина, "Stopped");
|
||||
@ -730,32 +738,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Обработчики
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
// Путь = Контекст.Запрос.Путь;
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -16451,7 +16451,7 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСобытиеКалендаря (хук)", "Bitrix24"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксИстина(Результат); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксСоответствие(Результат); // SKIP
|
||||
|
||||
URL = ПараметрыФункции["Bitrix24_Domain"];
|
||||
Токен = ПараметрыФункции["Bitrix24_Token"];
|
||||
@ -16465,7 +16465,7 @@
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("bitrix24", "ПолучитьСобытиеКалендаря", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСобытиеКалендаря", "Bitrix24");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_БитриксСоответствие(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -73,4 +73,5 @@
|
||||
<commonModules>CommonModule.OPI_ТестыCLI</commonModules>
|
||||
<commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>
|
||||
<commonModules>CommonModule.OPI_ПроксиИнтеграций</commonModules>
|
||||
<dataProcessors>DataProcessor.OPI_ОбработчикЗапросовПрокси</dataProcessors>
|
||||
</mdclass:Configuration>
|
||||
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DataProcessor xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="69621c8a-c465-4b1c-8b27-9bc66e4c3376">
|
||||
<producedTypes>
|
||||
<objectType typeId="4b1bc5bc-1b31-4f51-8b3d-399b295851dc" valueTypeId="eac0741a-842c-41d0-b54a-b434b0a82421"/>
|
||||
<managerType typeId="1644c377-1063-400a-9aea-93243361625f" valueTypeId="3417f4d1-4e65-4fd7-8d8e-80bdd1afdf00"/>
|
||||
</producedTypes>
|
||||
<name>OPI_ОбработчикЗапросовПрокси</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Обработчик запросов прокси</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
</mdclass:DataProcessor>
|
@ -0,0 +1,82 @@
|
||||
// OneScript: ./OInt/tools/Classes/OPI_ОбработчикЗапросовПрокси.os
|
||||
|
||||
// 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:Typo-off
|
||||
// BSLLS:LatinAndCyrillicSymbolInWord-off
|
||||
// BSLLS:IncorrectLineBreak-off
|
||||
// BSLLS:UnusedLocalVariable-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:NumberOfOptionalParams-off
|
||||
|
||||
//@skip-check module-unused-local-variable
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check use-non-recommended-method
|
||||
//@skip-check module-accessibility-at-client
|
||||
//@skip-check object-module-export-variable
|
||||
|
||||
#Область ОписаниеПеременных
|
||||
|
||||
|
||||
Перем ПутьПроекта Экспорт;
|
||||
Перем МодульПрокси Экспорт;
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
Путь = Контекст.Запрос.Путь;
|
||||
|
||||
Путь = ?(СтрНачинаетсяС(Путь, "/") , Прав(Путь, СтрДлина(Путь - 1)), Путь);
|
||||
Путь = ?(СтрЗаканчиваетсяНа(Путь, "/"), Лев(Путь, СтрДлина(Путь - 1)) , Путь);
|
||||
|
||||
ОписаниеОбработчика = МодульПрокси.ПолучитьОбработчикЗапросов(ПутьПроекта, Путь);
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
Loading…
x
Reference in New Issue
Block a user