Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/connector #157

Merged
merged 44 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
1833c1c
Merge pull request #138 from alei1180/main
Stivo182 Jan 18, 2025
a83f902
feat: Добавление генератора программного кода для КоннекторHTTP
Stivo182 Jan 18, 2025
6138f36
Merge pull request #139 from Stivo182/feature/connector-http
Stivo182 Jan 18, 2025
ba766e9
refactor: Инициализация аутентификации через Структура для совместимо…
Stivo182 Jan 18, 2025
771733c
Merge pull request #140 from Stivo182/feature/connector-http
Stivo182 Jan 18, 2025
ba3c5a7
feat: Поддержка коннектора для cli
Stivo182 Jan 18, 2025
1906a6c
feat: Поддержка коннектора для web api
Stivo182 Jan 18, 2025
4d8fbc1
Merge pull request #141 from Stivo182/feature/connector-http
Stivo182 Jan 18, 2025
63dcc94
fix(cli): Не удалялся аргумент curl при выполнении команды convert
Stivo182 Jan 18, 2025
18539a4
test(cli): Добавление тестов команды convert
Stivo182 Jan 18, 2025
904532e
Merge pull request #142 from Stivo182/feature/connector-http
Stivo182 Jan 18, 2025
b4ae31d
test: Однократное создание объекта КонвертерКомандыCURL
Stivo182 Jan 18, 2025
9040d9b
refactor: Упорядочивание процедур и функций
Stivo182 Jan 18, 2025
aeae929
perf: Сборка в конструкторе программного кода реализована через Масси…
Stivo182 Jan 18, 2025
4b8d80f
refactor: Выделение формирование кода создания прокси в отдельную фун…
Stivo182 Jan 18, 2025
fa53f43
refactor: Переименования модуля
Stivo182 Jan 18, 2025
aa123b8
refactor: Переименования функции НазначениеПередаваемыхДанныхPOST
Stivo182 Jan 18, 2025
177c98d
Merge pull request #146 from Stivo182/feature/connector-http
Stivo182 Jan 18, 2025
6154e9d
feat: Поддержка опций -L, --location и --no-location для коннектора
Stivo182 Jan 19, 2025
aea8ecc
feat: Поддержка перенаправлений --retry и --retry-max-time для коннек…
Stivo182 Jan 19, 2025
4e88a02
Merge pull request #147 from Stivo182/feature/connector-http
Stivo182 Jan 19, 2025
b28e03c
feat: Добавление поддержки опций -F, --form, --form-string для коннек…
Stivo182 Jan 20, 2025
935e19d
Merge pull request #148 from Stivo182/feature/connector-http
Stivo182 Jan 20, 2025
32c2212
test: Добавление проверки на отсутствие ошибок
Stivo182 Jan 20, 2025
1fc1f3a
fix: Добавление отсутствующих поддерживаемых опций
Stivo182 Jan 20, 2025
a33d06b
fix: Исправление способа кодирования данных
Stivo182 Jan 20, 2025
2c20287
feat(web): добавить переключатель для connector (#127)
pinkycat Jan 20, 2025
20a7576
Merge pull request #149 from pinkycat/feat/127/web-selector
alei1180 Jan 20, 2025
2b651ff
refactor: Упрощение взаимодействия с опциями команды
Stivo182 Jan 20, 2025
6a0c2e7
Merge remote-tracking branch 'upstream/feat/connector' into feature/c…
Stivo182 Jan 20, 2025
6359f1a
Merge pull request #150 from Stivo182/feature/connector-http
Stivo182 Jan 20, 2025
9068d23
feat(web): Конвертация в зависимости от выбранного флага
Stivo182 Jan 20, 2025
1fca890
fix: Исправление ошибки, когда команда оканчивается на незакрытую кав…
Stivo182 Jan 20, 2025
3b8f484
Merge pull request #151 from Stivo182/feature/connector-http
alei1180 Jan 21, 2025
d75d17d
feat(web): Конвертация при изменении селектора
Stivo182 Jan 21, 2025
32b35bd
feat(web): Восстановление дефолтного результата, когда команда не зап…
Stivo182 Jan 21, 2025
a7de2de
Merge pull request #152 from Stivo182/feature/connector-http
alei1180 Jan 21, 2025
0a81fb3
docs: обновить справку по версии коннектор (#153)
alei1180 Jan 21, 2025
9dee471
docs: обновить справку по версии коннектор (#153)
alei1180 Jan 21, 2025
7b6ac36
docs: обновить справку по версии коннектор (#153)
alei1180 Jan 21, 2025
66c9c9d
chore: добавить в пример коннектора разделитель операторов
alei1180 Jan 21, 2025
c6cefa6
Merge pull request #154 from alei1180/docs/153/update-readme-connector
alei1180 Jan 21, 2025
bf80aac
chore: обновить номер версии (#155)
alei1180 Jan 21, 2025
a1df2e4
Merge pull request #156 from alei1180/chore/155/update-version
alei1180 Jan 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 52 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ opm install curlone

## Использование

### web приложение
## web приложение

Запуск приложения:

Expand Down Expand Up @@ -58,12 +58,27 @@ curlone web -o -p 3333
>
>HTTPОтвет = Соединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
>```
>
>Код Connector
>
>```bsl
>Заголовки = Новый Соответствие();
>Заголовки.Вставить("X-Header", "value");
>
>Данные = Новый Соответствие();
>Данные.Вставить("key", "value");
>
>ДополнительныеПараметры = Новый Структура();
>ДополнительныеПараметры.Вставить("Заголовки", Заголовки);
>
>Результат = КоннекторHTTP.Post("https://httpbin.org/post", Данные, ДополнительныеПараметры);
>```

Горячие клавиши:

* `ctrl + enter` - вызов команды `Конвертировать`

### cli приложение
## cli приложение

Синтаксис команды:

Expand All @@ -81,22 +96,47 @@ curlone convert <команда>
>
>Команда curlone
>
>Код 1C
>
>```shell
>curlone convert 1c https://httpbin.org/post --request POST -d "key=value" -H "X-Header: value"
>```
>
>Код Connector
>
>```shell
>curlone convert https://httpbin.org/post --request POST -d "key=value" -H "X-Header: value"
>curlone convert connector https://httpbin.org/post --request POST -d "key=value" -H "X-Header: value"
>```

### библиотека
## библиотека

Пример использования:

```bsl
#Использовать curlone

КонсольнаяКоманда = "curl https://httpbin.org/post --request POST -d ""key=value"" -H ""X-Header: value""";

КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда);
```
>Код 1C
>
>```bsl
>#Использовать curlone
>
>КонсольнаяКоманда = "curl https://httpbin.org/post --request POST -d ""key=value"" -H ""X-Header: value""";
>
>Генератор = Новый ГенераторПрограммногоКода1С();
>
>КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
>Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Генератор);
>```
>
>Код Connector
>
>```bsl
>#Использовать curlone
>
>КонсольнаяКоманда = "curl https://httpbin.org/post --request POST -d ""key=value"" -H ""X-Header: value""";
>
>Генератор = Новый ГенераторПрограммногоКодаКоннекторHTTP();
>
>КонвертерКомандыCURL = Новый КонвертерКомандыCURL();
>Результат = КонвертерКомандыCURL.Конвертировать(КонсольнаяКоманда, Генератор);
>```

## Особенности использования

Expand Down
2 changes: 1 addition & 1 deletion autumn-properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@
"cli": {
"ИмяПриложения": "curlone",
"ПолноеИмяПриложения": "Конвертер команды curl в код на языке 1С",
"ВерсияПриложения": "1.0.0"
"ВерсияПриложения": "1.1.0"
}
}
5 changes: 3 additions & 2 deletions lib.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<package-def>
<class name="ГенераторПрограммногоКода1С" file="src/core/Классы/ГенераторПрограммногоКода1С.os"/>
<class name="ПарсерКонсольнойКоманды" file="src/core/Классы/ПарсерКонсольнойКоманды.os"/>
<class name="КонвертерКомандыCURL" file="src/core/Классы/КонвертерКомандыCURL.os"/>
<class name="ПарсерКонсольнойКоманды" file="src/core/Классы/ПарсерКонсольнойКоманды.os"/>
<class name="ГенераторПрограммногоКода1С" file="src/core/Классы/ГенераторПрограммногоКода1С.os"/>
<class name="ГенераторПрограммногоКодаКоннекторHTTP" file="src/core/Классы/ГенераторПрограммногоКодаКоннекторHTTP.os"/>
</package-def>
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("curlone")
.Версия("1.0.0")
.Версия("1.1.0")
.Автор("Alexander Osadchy, Dmitry Ivanov, Gleb Bogachev")
.АдресАвтора("https://github.com/alei1180, https://github.com/Stivo182, https://github.com/pinkycat")
.Описание("Конвертер команды curl в код на языке 1С")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
#Использовать coloratos
#Использовать "../../core"
#Использовать "../../internal"

Перем ВходящиеАргументы; // Массив из Строка
Перем Генератор; // Объект генератора программного кода
Перем РезультатКонвертации; // Строка

#Область ПрограммныйИнтерфейс

Процедура Конвертировать() Экспорт

Генератор = Неопределено;

Если Не НайденаКоманда() Тогда
ВызватьИсключение "Не найдена команда convert";
КонецЕсли;

ПодготовленныеАргументы = ПодготовитьАргументы();

Ошибки = Новый Массив();
КонвертерКомандыCURL = Новый КонвертерКомандыCURL();

Попытка
РезультатКонвертации = КонвертерКомандыCURL.Конвертировать(ПодготовленныеАргументы, Генератор, Ошибки);
Исключение
РезультатКонвертации = "";
Ошибки.Добавить(ОбщегоНазначения.НоваяКритичнаяОшибка(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

Для Каждого Ошибка Из Ошибки Цикл
Цвет = ?(Ошибка.Критичная, "Красный", "Желтый");
ЦветнойВывод.Вывести("// ");
ЦветнойВывод.ВывестиСтроку(Ошибка.Текст, Цвет);
КонецЦикла;

Если ЗначениеЗаполнено(РезультатКонвертации) Тогда
Если Ошибки.Количество() Тогда
Консоль.Вывести(Символы.ПС);
КонецЕсли;

Консоль.Вывести(РезультатКонвертации);
КонецЕсли;

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

Функция НайденаКоманда() Экспорт
Возврат ВходящиеАргументы.Количество() И НРег(ВходящиеАргументы[0]) = "convert";
КонецФункции

#КонецОбласти

#Область СлужебныйПрограммныйИнтерфейс

Функция ПолучитьРезультат() Экспорт
Возврат РезультатКонвертации;
КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Процедура ПриСозданииОбъекта(Аргументы)
ВходящиеАргументы = Аргументы;
РезультатКонвертации = "";
КонецПроцедуры

Функция ПодготовитьАргументы()

ПодготовленныеАргументы = Новый Массив();
ОбщегоНазначения.ДополнитьМассив(ПодготовленныеАргументы, ВходящиеАргументы);

ПодготовленныеАргументы[0] = "curl";

ПрочитатьАргументГенератора(ПодготовленныеАргументы);
УдалитьПовторяющийАргументCurl(ПодготовленныеАргументы);

Возврат ПодготовленныеАргументы;

КонецФункции

Процедура УдалитьПовторяющийАргументCurl(Аргументы)

Если Аргументы.Количество() > 1 И НРег(Аргументы[1]) = "curl" Тогда
Аргументы.Удалить(1);
КонецЕсли;

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

Процедура ПрочитатьАргументГенератора(Аргументы)

ИндексАргумента = 1;

Если Аргументы.Количество() > ИндексАргумента Тогда
Аргумент = НРег(Аргументы[ИндексАргумента]);
Генератор = ПолучитьГенераторПоАргументу(Аргумент);
КонецЕсли;

Если Генератор = Неопределено Тогда
Генератор = ГенераторПоУмолчанию();
Иначе
Аргументы.Удалить(ИндексАргумента);
КонецЕсли;

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

Функция ПолучитьГенераторПоАргументу(Аргумент)
Если Аргумент = "connector" Тогда
Возврат Новый ГенераторПрограммногоКодаКоннекторHTTP();
ИначеЕсли Аргумент = "1c" Тогда
Возврат Новый ГенераторПрограммногоКода1С();
КонецЕсли;
КонецФункции

Функция ГенераторПоУмолчанию()
Возврат Новый ГенераторПрограммногоКода1С();
КонецФункции

#КонецОбласти
Loading
Loading