1
0
mirror of https://github.com/alei1180/curlone.git synced 2025-11-30 23:34:57 +02:00

feat(web): Добавление обработчика конвертации команды curl в программный код

This commit is contained in:
Dmitry Ivanov
2024-12-26 01:57:25 +03:00
parent 6212468475
commit 71ca90fc03
2 changed files with 71 additions and 8 deletions

View File

@@ -45,7 +45,7 @@
}
textarea {
resize: none;
resize: vertical;
border-radius: 0;
border: 2px solid black;
overflow-y: scroll;
@@ -84,17 +84,19 @@
</div>
<div class="container">
<div>
<label for="inputcurl">Команда curl</label>
<textarea name="inputcurl" id="inputcurl" cols="120" rows="9" placeholder="curl example.com" required autofocus></textarea>
<input type="submit" value="Конвертировать">
<form method="post" action="/">
<label for="inputcurl">Команда curl</label>
<textarea name="inputcurl" id="inputcurl" cols="120" rows="9" spellcheck="false" placeholder="curl example.com" required autofocus>{{ Модель.Команда }}</textarea>
<input type="submit" value="Конвертировать">
</form>
</div>
</div>
<div class="container">
<div>
<label for="output">Код 1C</label>
<textarea name="output" id="output" cols="120" rows="9" wrap="off" placeholder='Соединение = Новый HTTPСоединение("example.com", 80);
<textarea name="output" id="output" cols="120" rows="9" wrap="off" spellcheck="false" placeholder='Соединение = Новый HTTPСоединение("example.com", 80);
HTTPЗапрос = Новый HTTPЗапрос("/");
HTTPОтвет = Соединение.ВызватьHTTPМетод("GET", HTTPЗапрос);'></textarea>
HTTPОтвет = Соединение.ВызватьHTTPМетод("GET", HTTPЗапрос);'>{{ Модель.ПрограммныйКод }}</textarea>
<input type="submit" value="Скопировать">
</div>
</div>

View File

@@ -5,6 +5,67 @@
&ТочкаМаршрута("")
&Отображение("./Классы/interface/view/index.html")
Процедура Главная(Ответ) Экспорт
Процедура Главная(Запрос, Ответ) Экспорт
Перем Ошибки;
ПараметрыЗапроса = ПараметрыИзТекста(Запрос.Тело);
Ответ.Модель = Модель();
КонецПроцедуры
Команда = ПараметрыЗапроса.Получить("inputcurl");
Если Команда <> Неопределено Тогда
Ответ.Модель.Команда = Команда;
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
Попытка
Результат = КонвертерКомандыCURL.Конвертировать(Команда, Новый ГенераторПрограммногоКода1С(), Ошибки);
Исключение
Ответ.Модель.ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
Ответ.Модель.ПрограммныйКод = Результат;
КонецЕсли;
КонецПроцедуры
Функция Модель()
Модель = Новый Структура();
Модель.Вставить("Команда", "");
Модель.Вставить("ПрограммныйКод", "");
Модель.Вставить("ТекстОшибки", "");
Возврат Модель;
КонецФункции
Функция ПараметрыИзТекста(ПараметрыТекстом, РазделительПараметров = "&") Экспорт
Результат = Новый Соответствие();
Если ЗначениеЗаполнено(ПараметрыТекстом) Тогда
ПараметрыТекстом = СтрЗаменить(ПараметрыТекстом, "+", " ");
МассивПараметров = СтрРазделить(РаскодироватьСтроку(ПараметрыТекстом, СпособКодированияСтроки.КодировкаURL), РазделительПараметров, Ложь);
Для Каждого ТекПараметрСтрокой из МассивПараметров Цикл
ТекПараметр = РазделитьСтроку(ТекПараметрСтрокой, "=");
Результат.Вставить(ТекПараметр.Лево, ТекПараметр.Право);
КонецЦикла;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция РазделитьСтроку(Строка, Разделитель) Экспорт
Результат = Новый Структура("Лево, Право","","");
ПозицияРазделителя = СтрНайти(Строка, Разделитель);
Если ПозицияРазделителя = 0 Тогда
Результат.Лево = Строка;
Иначе
Результат.Лево = Лев(Строка, ПозицияРазделителя - 1);
Результат.Право = Сред(Строка, ПозицияРазделителя + СтрДлина(Разделитель));
КонецЕсли;
Возврат Результат;
КонецФункции