Skip to content

Commit

Permalink
mvp
Browse files Browse the repository at this point in the history
  • Loading branch information
Nivanchenko committed Jun 13, 2024
1 parent b6486b5 commit a6a36ce
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 30 deletions.
26 changes: 0 additions & 26 deletions src/Классы/ВебСервер.os

This file was deleted.

33 changes: 33 additions & 0 deletions src/Классы/ВнутреннийВебСервер.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

&Пластилин Перем ПарсерЗапросов;
&Пластилин Перем Настройки;
Перем ВебСервер;

&Желудь
Процедура ПриСозданииОбъекта()

КонецПроцедуры

Процедура Старт() Экспорт

ВебСервер = Новый ВебСервер(Настройки.Порт);

ВебСервер.ДобавитьОбработчикЗапросов(ПарсерЗапросов, "ОбработатьВходящийКонтекст");

ВебСервер.Запустить();
ВебСервер.ЖдатьОстановки();

// СлушательПорта.Запустить();

// Пока СлушательПорта.Активен() Цикл

// Соединение = СлушательПорта.ОжидатьСоединения();

// МассивПараметров = Новый Массив();
// МассивПараметров.Добавить(Соединение);

// ФоновыеЗадания.Выполнить(ОбработчикСоединений, "Обработать", МассивПараметров);

// КонецЦикла

КонецПроцедуры
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
&Пластилин Перем ВебСервер;
&Пластилин Перем ВнутреннийВебСервер;
&Пластилин Перем ИнициализацияНастроекСервера;

&Желудь
Expand All @@ -8,5 +8,5 @@

Процедура Запустить() Экспорт
ИнициализацияНастроекСервера.ИнициализацияКонтролов();
ВебСервер.Старт();
ВнутреннийВебСервер.Старт();
КонецПроцедуры
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

&Пластилин Перем РегистраторКаталогаФайлов;
&Пластилин Перем СборщикМаршрутов;
&Пластилин Перем ВебСервер;
&Пластилин Перем ВнутреннийВебСервер;

&Деталька("winow.КаталогиСФайлами")
Перем КаталогиСФайлами;
Expand Down Expand Up @@ -44,7 +44,7 @@
Процедура Старт()

Если АвтоСтарт = Истина Тогда
ВебСервер.Старт();
ВнутреннийВебСервер.Старт();
КонецЕсли;

КонецПроцедуры
56 changes: 56 additions & 0 deletions src/Классы/ПарсерЗапросов.os
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,62 @@
Настройки = _Настройки;
КонецПроцедуры

Процедура ОбработатьВходящийКонтекст(Контекст, СледующийОбработчик) Экспорт
Запрос = ПолучитьОписаниеЗапроса(Контекст.Запрос);

УстановитьСессиюПоКукам(Запрос);

Ответ = ОбработчикЗапросов.СформироватьОтвет(Запрос);

ЗаполнитьКонтекстныйОтвет(Ответ, Контекст.Ответ);
КонецПроцедуры

Процедура ЗаполнитьКонтекстныйОтвет(Ответ, ОтветИзКонтекста)

ОтветИзКонтекста.ТипКонтента = Ответ.Заголовки.Получить("Content-Type");
ОтветИзКонтекста.Записать(Ответ.ТелоТекст);
ОтветИзКонтекста.КодСостояния = Ответ.СостояниеКод;

Для каждого КиЗ Из Ответ.Заголовки Цикл
ОтветИзКонтекста.Заголовки.Вставить(КиЗ.Ключ, КиЗ.Значение);
КонецЦикла;

Для каждого КиЗ Из Ответ.Куки.Получить() Цикл
ОтветИзКонтекста.Куки.Вставить(КиЗ.Ключ, КиЗ.Значение);
КонецЦикла;

КонецПроцедуры

Функция ПолучитьОписаниеЗапроса(ЗапросИзКонтекста)
Запрос = Поделка.НайтиЖелудь("ВходящийЗапрос");

Для каждого КиЗ Из ЗапросИзКонтекста.Заголовки Цикл
Запрос.Заголовки.Вставить(КиЗ.Ключ, КиЗ.Значение);
КонецЦикла;

Для каждого КиЗ Из ЗапросИзКонтекста.Куки Цикл
Запрос.Куки.Добавить(КиЗ.Ключ, КиЗ.Значение);
КонецЦикла;

Размер = ?(ТипЗнч(ЗапросИзКонтекста.ДлинаКонтента) = Тип("Число"),
ЗапросИзКонтекста.ДлинаКонтента,
0);

БуферДвоичныхДанных = Новый БуферДвоичныхДанных(Размер);

ЗапросИзКонтекста.Тело.Прочитать(БуферДвоичныхДанных, 0, Размер);
ДДТело = ПолучитьДвоичныеДанныеИзБуфераДвоичныхДанных(БуферДвоичныхДанных);

Запрос.ТелоДвоичныеДанные = ДДТело;
Запрос.Тело = ПолучитьСтрокуИзДвоичныхДанных(ДДТело);
Запрос.Метод = ЗапросИзКонтекста.Метод;
Запрос.Путь = ЗапросИзКонтекста.Путь;
Запрос.ПолныйПуть = ЗапросИзКонтекста.Путь + ЗапросИзКонтекста.СтрокаПараметров;
Запрос.ДатаПолучения = ТекущаяДата();

Возврат Запрос;
КонецФункции

Функция ОбработатьДвоичныеДанные(ДвоичныеДанныеЗапроса) Экспорт

Запрос = ПолучитьЗапросИзДвоичныхДанных(ДвоичныеДанныеЗапроса);
Expand Down

0 comments on commit a6a36ce

Please sign in to comment.