mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-21 21:27:27 +02:00
Main build (Jenkins)
This commit is contained in:
parent
673fe1153c
commit
02c236c6f0
40
ci/clitesten
vendored
40
ci/clitesten
vendored
@ -11,11 +11,6 @@ pipeline {
|
||||
stage('Run Tests') {
|
||||
parallel {
|
||||
|
||||
stage('proxy'){
|
||||
steps{
|
||||
test_proxy()
|
||||
}
|
||||
}
|
||||
stage('tools'){
|
||||
steps{
|
||||
test_tools()
|
||||
@ -61,6 +56,11 @@ pipeline {
|
||||
test_google()
|
||||
}
|
||||
}
|
||||
stage('proxy'){
|
||||
steps{
|
||||
test_proxy()
|
||||
}
|
||||
}
|
||||
stage('mongodb'){
|
||||
steps{
|
||||
test_mongodb()
|
||||
@ -152,16 +152,6 @@ pipeline {
|
||||
}
|
||||
|
||||
|
||||
def test_proxy(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy Start --port "test" --proj "test" --pass "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_tools(){
|
||||
|
||||
|
||||
@ -1428,6 +1418,24 @@ def test_google(){
|
||||
}
|
||||
|
||||
|
||||
def test_proxy(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy CreateProject --path "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy AddRequestsHandler --proj "test" --name "test" --secret "test" --method "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy Start --port "test" --proj "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_mongodb(){
|
||||
|
||||
|
||||
@ -2875,7 +2883,6 @@ pipeline {
|
||||
}
|
||||
stage('Run'){
|
||||
steps{
|
||||
test_proxy()
|
||||
test_tools()
|
||||
test_airtable()
|
||||
test_bitrix24()
|
||||
@ -2885,6 +2892,7 @@ test_gcalendar()
|
||||
test_gdrive()
|
||||
test_gsheets()
|
||||
test_google()
|
||||
test_proxy()
|
||||
test_mongodb()
|
||||
test_neocities()
|
||||
test_notion()
|
||||
|
40
ci/clitestru
vendored
40
ci/clitestru
vendored
@ -11,11 +11,6 @@ pipeline {
|
||||
stage('Run Tests') {
|
||||
parallel {
|
||||
|
||||
stage('proxy'){
|
||||
steps{
|
||||
test_proxy()
|
||||
}
|
||||
}
|
||||
stage('tools'){
|
||||
steps{
|
||||
test_tools()
|
||||
@ -146,22 +141,17 @@ pipeline {
|
||||
test_metrika()
|
||||
}
|
||||
}
|
||||
stage('proxy'){
|
||||
steps{
|
||||
test_proxy()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_proxy(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy Запустить --port "test" --proj "test" --pass "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_tools(){
|
||||
|
||||
|
||||
@ -2864,6 +2854,24 @@ def test_metrika(){
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
def test_proxy(){
|
||||
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy СоздатьПроект --path "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy ДобавитьОбработчикЗапросов --proj "test" --name "test" --secret "test" --method "test" --debug --test '
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'./oint.exe proxy Запустить --port "test" --proj "test" --debug --test '
|
||||
}
|
||||
|
||||
}
|
||||
pipeline {
|
||||
agent any
|
||||
stages {
|
||||
@ -2875,7 +2883,6 @@ pipeline {
|
||||
}
|
||||
stage('Run'){
|
||||
steps{
|
||||
test_proxy()
|
||||
test_tools()
|
||||
test_airtable()
|
||||
test_bitrix24()
|
||||
@ -2902,6 +2909,7 @@ test_yadisk()
|
||||
test_yandex()
|
||||
test_yamarket()
|
||||
test_metrika()
|
||||
test_proxy()
|
||||
|
||||
}
|
||||
}
|
||||
|
37
docs/en/md/Integration_proxy_methods/Proxy-settings/Add-requests-handler.mdx
vendored
Normal file
37
docs/en/md/Integration_proxy_methods/Proxy-settings/Add-requests-handler.mdx
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Add requests handler
|
||||
Adds a new handler to the project
|
||||
|
||||
|
||||
|
||||
`Function AddRequestsHandler(Val Project, Val Name, Val SecretKey, Val Method = "GET") Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| Project | --proj | String | ✔ | Project filepath |
|
||||
| Name | --name | String | ✔ | Name of the new handler |
|
||||
| SecretKey | --secret | String | ✔ | Secret key for URL handler |
|
||||
| Method | --method | String | ✖ | HTTP method that will process the handler: GET, POST, MULTIPART |
|
||||
|
||||
|
||||
Returns: Structure Of KeyAndValue - result of adding a handler
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
34
docs/en/md/Integration_proxy_methods/Proxy-settings/Create-project.mdx
vendored
Normal file
34
docs/en/md/Integration_proxy_methods/Proxy-settings/Create-project.mdx
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Create project
|
||||
Creates a project file at the selected path
|
||||
|
||||
|
||||
|
||||
`Function CreateProject(Val Path) Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| Path | --path | String | ✔ | Project filepath |
|
||||
|
||||
|
||||
Returns: Structure Of KeyAndValue - creation result
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
35
docs/en/md/Integration_proxy_methods/Proxy-settings/Start.mdx
vendored
Normal file
35
docs/en/md/Integration_proxy_methods/Proxy-settings/Start.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Start
|
||||
Launches integration proxy server
|
||||
|
||||
|
||||
|
||||
`Function Start(Val Port, Val Project) Export`
|
||||
|
||||
| Parameter | CLI option | Type | Required | Description |
|
||||
|-|-|-|-|-|
|
||||
| Port | --port | Number | ✔ | Servers port |
|
||||
| Project | --proj | String | ✔ | Project filepath |
|
||||
|
||||
|
||||
Returns: Structure Of KeyAndValue - server shutdown result
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/en/md/Integration_proxy_methods/Proxy-settings/_category_.json
vendored
Normal file
4
docs/en/md/Integration_proxy_methods/Proxy-settings/_category_.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Proxy settings",
|
||||
"position": "2"
|
||||
}
|
37
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Add-requests-handler.mdx
vendored
Normal file
37
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Add-requests-handler.mdx
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Добавить обработчик запросов
|
||||
Добавляет новый обработчик в проект
|
||||
|
||||
|
||||
|
||||
`Функция ДобавитьОбработчикЗапросов(Знач Проект, Знач Имя, Знач СекретныйКлюч, Знач Метод = "GET") Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Проект | --proj | Строка | ✔ | Путь к файлу проекта |
|
||||
| Имя | --name | Строка | ✔ | Имя нового обработчика |
|
||||
| СекретныйКлюч | --secret | Строка | ✔ | Секретный ключ для URL обработчика |
|
||||
| Метод | --method | Строка | ✖ | HTTP метод, который будет обрабатывать обработчик: GET, POST, MULTIPART |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - результат добавления обработчика
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
34
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Create-project.mdx
vendored
Normal file
34
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Create-project.mdx
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Создать проект
|
||||
Создает файл проекта по выбранному пути
|
||||
|
||||
|
||||
|
||||
`Функция СоздатьПроект(Знач Путь) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Путь | --path | Строка | ✔ | Путь к файлу проекта |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - результат создания
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
35
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Start.mdx
vendored
Normal file
35
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/Start.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Запустить
|
||||
Запускает прокси сервер интеграций
|
||||
|
||||
|
||||
|
||||
`Функция Запустить(Знач Порт, Знач Проект) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Порт | --port | Число | ✔ | Порт запуска сервера |
|
||||
| Проект | --proj | Строка | ✔ | Путь к файлу проекта |
|
||||
|
||||
|
||||
Возвращаемое значение: Структура Из КлючИЗначение - результат остановки сервера
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
4
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/_category_.json
vendored
Normal file
4
docs/ru/md/Методы_прокси_интеграций/Proxy-settings/_category_.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Настройки прокси",
|
||||
"position": "2"
|
||||
}
|
12528
service/dictionaries/en.json
vendored
12528
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
279
src/en/OInt/core/Modules/OPI_IntegrationProxy.os
vendored
Normal file
279
src/en/OInt/core/Modules/OPI_IntegrationProxy.os
vendored
Normal file
@ -0,0 +1,279 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_IntegrationProxy.os
|
||||
// Lib: Integration proxy methods
|
||||
// CLI: proxy
|
||||
|
||||
// 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:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
#Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region ProxySettings
|
||||
|
||||
// Create project
|
||||
// Creates a project file at the selected path
|
||||
//
|
||||
// Parameters:
|
||||
// Path - String - Project filepath - path
|
||||
//
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - creation result
|
||||
Function CreateProject(Val Path) Export
|
||||
|
||||
Return NormalizeProject(Path);
|
||||
|
||||
EndFunction
|
||||
|
||||
// Add requests handler
|
||||
// Adds a new handler to the project
|
||||
//
|
||||
// Parameters:
|
||||
// Project - String - Project filepath - proj
|
||||
// Name - String - Name of the new handler - name
|
||||
// SecretKey - String - Secret key for URL handler - secret
|
||||
// Method - String - HTTP method that will process the handler: GET, POST, MULTIPART - method
|
||||
//
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - result of adding a handler
|
||||
Function AddRequestsHandler(Val Project, Val Name, Val SecretKey, Val Method = "GET") Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Name);
|
||||
OPI_TypeConversion.GetLine(SecretKey);
|
||||
OPI_TypeConversion.GetLine(Method);
|
||||
|
||||
Result = CheckProjectExistence(Project);
|
||||
|
||||
If Not Result["result"] Then
|
||||
Return Result;
|
||||
Else
|
||||
Project = Result["path"];
|
||||
EndIf;
|
||||
|
||||
DataArray = New Array;
|
||||
DataArray.Add(New Structure("name,secret,method", Name, SecretKey, Method));
|
||||
|
||||
HandlersTableName = ConstantValue("HandlersTable");
|
||||
Result = OPI_SQLite.AddRecords(HandlersTableName, DataArray, , Project);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Start
|
||||
// Launches integration proxy server
|
||||
//
|
||||
// Parameters:
|
||||
// Port - Number - Servers port - port
|
||||
// Project - String - Project filepath - proj
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - server shutdown result
|
||||
Function Start(Val Port, Val Project) Export
|
||||
|
||||
OPI_TypeConversion.GetNumber(Port);
|
||||
|
||||
ServerType = Type("WebServer");
|
||||
|
||||
ServerParams = New Array(1);
|
||||
ServerParams[0] = Port;
|
||||
|
||||
WebServer = New(ServerType, ServerParams);
|
||||
|
||||
WebServer.AddRequestsHandler(ThisObject, "MainHandler");
|
||||
WebServer.Start();
|
||||
|
||||
Return FormResponse(True, "Stopped");
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
#Region Project
|
||||
|
||||
Function CheckProjectExistence(Path)
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
ProjectFile = New File(Path);
|
||||
Text = "The project file already exists!";
|
||||
Result = True;
|
||||
|
||||
If Not ProjectFile.Exist() Then
|
||||
Text = "Project file not found at the specified path!";
|
||||
Result = False;
|
||||
EndIf;
|
||||
|
||||
If ProjectFile.IsDirectory() Then
|
||||
Text = "The directory path is passed, not the project file!";
|
||||
Result = False;
|
||||
EndIf;
|
||||
|
||||
ResponseStructure = FormResponse(Result, Text, ProjectFile.FullName);
|
||||
|
||||
Return ResponseStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeProject(Path)
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
DBFile = New File(Path);
|
||||
|
||||
If DBFile.IsDirectory() Then
|
||||
|
||||
Counter = 1;
|
||||
|
||||
While DBFile.Exist() Do
|
||||
|
||||
Path = Path + "/new_project_" + String(Counter) + ".oint";
|
||||
DBFile = New File(Path);
|
||||
|
||||
Counter = Counter + 1;
|
||||
|
||||
EndDo;
|
||||
|
||||
EndIf;
|
||||
|
||||
FullPath = DBFile.FullName;
|
||||
|
||||
If Not DBFile.Exist() Then
|
||||
|
||||
Result = CreateNewProject(FullPath);
|
||||
|
||||
If Result["result"] Then
|
||||
Text = "The project file has been successfully created!";
|
||||
Response = FormResponse(True, Text, FullPath);
|
||||
Else
|
||||
Response = Result;
|
||||
EndIf;
|
||||
|
||||
Else
|
||||
|
||||
Text = "The project file at the given path already exists!";
|
||||
Response = FormResponse(False, Text, FullPath);
|
||||
|
||||
EndIf;
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function FormResponse(Val Result, Val Text, Val Path = "")
|
||||
|
||||
Response = New Structure("result,message", False, Text);
|
||||
|
||||
If ValueIsFilled(Path) Then
|
||||
Response.Insert("path", Path);
|
||||
EndIf;
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function ConstantValue(Val Key)
|
||||
|
||||
If Key = "HandlersTable" Then Return "handlers"
|
||||
Else Return "" EndIf;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateNewProject(Path)
|
||||
|
||||
EmptyFile = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
EmptyFile.Write(Path);
|
||||
|
||||
Result = CreateHandlersTable(Path);
|
||||
|
||||
If Not Result["reuslt"] Then
|
||||
DeleteFiles(Path);
|
||||
Return Result;
|
||||
EndIf;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateHandlersTable(Path)
|
||||
|
||||
TableStructure = New Structure();
|
||||
TableStructure.Insert("id" , "INTEGER PRIMARY KEY");
|
||||
TableStructure.Insert("name" , "TEXT");
|
||||
TableStructure.Insert("secret", "TEXT");
|
||||
TableStructure.Insert("method", "TEXT");
|
||||
|
||||
HandlersTableName = ConstantValue("HandlersTable");
|
||||
Result = OPI_SQLite.CreateTable(HandlersTableName, TableStructure, Path);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Handlers
|
||||
|
||||
Procedure MainHandler(Context, NexHandler) Export
|
||||
|
||||
Try
|
||||
ProcessRequest(Context);
|
||||
Except
|
||||
|
||||
Error = ErrorDescription();
|
||||
|
||||
Context.Response.StatusCode = 500;
|
||||
Context.Response.Write(Error);
|
||||
|
||||
EndTry
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure ProcessRequest(Context)
|
||||
|
||||
// Path = Context.Request.Path;
|
||||
|
||||
Context.Response.StatusCode = 200;
|
||||
Context.Response.Write("Hello world!");
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
1
src/en/OInt/lib.config
vendored
1
src/en/OInt/lib.config
vendored
@ -28,4 +28,5 @@
|
||||
<module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/>
|
||||
<module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/>
|
||||
<module name="OPI_TypeConversion" file="tools/Modules/OPI_TypeConversion.os"/>
|
||||
<module name="OPI_IntegrationProxy" file="core/Modules/OPI_IntegrationProxy.os"/>
|
||||
</package-def>
|
||||
|
279
src/en/OPI/src/CommonModules/OPI_IntegrationProxy/Module.bsl
vendored
Normal file
279
src/en/OPI/src/CommonModules/OPI_IntegrationProxy/Module.bsl
vendored
Normal file
@ -0,0 +1,279 @@
|
||||
// OneScript: ./OInt/core/Modules/OPI_IntegrationProxy.os
|
||||
// Lib: Integration proxy methods
|
||||
// CLI: proxy
|
||||
|
||||
// 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:NumberOfOptionalParams-off
|
||||
// BSLLS:UsingServiceTag-off
|
||||
// BSLLS:LineLength-off
|
||||
|
||||
//@skip-check module-structure-top-region
|
||||
//@skip-check module-structure-method-in-regions
|
||||
//@skip-check wrong-string-literal-content
|
||||
//@skip-check method-too-many-params
|
||||
//@skip-check constructor-function-return-section
|
||||
|
||||
// Uncomment if OneScript is executed
|
||||
// #Use "../../tools"
|
||||
|
||||
#Region Public
|
||||
|
||||
#Region ProxySettings
|
||||
|
||||
// Create project
|
||||
// Creates a project file at the selected path
|
||||
//
|
||||
// Parameters:
|
||||
// Path - String - Project filepath - path
|
||||
//
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - creation result
|
||||
Function CreateProject(Val Path) Export
|
||||
|
||||
Return NormalizeProject(Path);
|
||||
|
||||
EndFunction
|
||||
|
||||
// Add requests handler
|
||||
// Adds a new handler to the project
|
||||
//
|
||||
// Parameters:
|
||||
// Project - String - Project filepath - proj
|
||||
// Name - String - Name of the new handler - name
|
||||
// SecretKey - String - Secret key for URL handler - secret
|
||||
// Method - String - HTTP method that will process the handler: GET, POST, MULTIPART - method
|
||||
//
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - result of adding a handler
|
||||
Function AddRequestsHandler(Val Project, Val Name, Val SecretKey, Val Method = "GET") Export
|
||||
|
||||
OPI_TypeConversion.GetLine(Name);
|
||||
OPI_TypeConversion.GetLine(SecretKey);
|
||||
OPI_TypeConversion.GetLine(Method);
|
||||
|
||||
Result = CheckProjectExistence(Project);
|
||||
|
||||
If Not Result["result"] Then
|
||||
Return Result;
|
||||
Else
|
||||
Project = Result["path"];
|
||||
EndIf;
|
||||
|
||||
DataArray = New Array;
|
||||
DataArray.Add(New Structure("name,secret,method", Name, SecretKey, Method));
|
||||
|
||||
HandlersTableName = ConstantValue("HandlersTable");
|
||||
Result = OPI_SQLite.AddRecords(HandlersTableName, DataArray, , Project);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
// Start
|
||||
// Launches integration proxy server
|
||||
//
|
||||
// Parameters:
|
||||
// Port - Number - Servers port - port
|
||||
// Project - String - Project filepath - proj
|
||||
// Returns:
|
||||
// Structure Of KeyAndValue - server shutdown result
|
||||
Function Start(Val Port, Val Project) Export
|
||||
|
||||
OPI_TypeConversion.GetNumber(Port);
|
||||
|
||||
ServerType = Type("WebServer");
|
||||
|
||||
ServerParams = New Array(1);
|
||||
ServerParams[0] = Port;
|
||||
|
||||
WebServer = New(ServerType, ServerParams);
|
||||
|
||||
WebServer.AddRequestsHandler(ThisObject, "MainHandler");
|
||||
WebServer.Start();
|
||||
|
||||
Return FormResponse(True, "Stopped");
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Private
|
||||
|
||||
#Region Project
|
||||
|
||||
Function CheckProjectExistence(Path)
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
ProjectFile = New File(Path);
|
||||
Text = "The project file already exists!";
|
||||
Result = True;
|
||||
|
||||
If Not ProjectFile.Exists() Then
|
||||
Text = "Project file not found at the specified path!";
|
||||
Result = False;
|
||||
EndIf;
|
||||
|
||||
If ProjectFile.IsDirectory() Then
|
||||
Text = "The directory path is passed, not the project file!";
|
||||
Result = False;
|
||||
EndIf;
|
||||
|
||||
ResponseStructure = FormResponse(Result, Text, ProjectFile.FullName);
|
||||
|
||||
Return ResponseStructure;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function NormalizeProject(Path)
|
||||
|
||||
OPI_TypeConversion.GetLine(Path);
|
||||
|
||||
DBFile = New File(Path);
|
||||
|
||||
If DBFile.IsDirectory() Then
|
||||
|
||||
Counter = 1;
|
||||
|
||||
While DBFile.Exists() Do
|
||||
|
||||
Path = Path + "/new_project_" + String(Counter) + ".oint";
|
||||
DBFile = New File(Path);
|
||||
|
||||
Counter = Counter + 1;
|
||||
|
||||
EndDo;
|
||||
|
||||
EndIf;
|
||||
|
||||
FullPath = DBFile.FullName;
|
||||
|
||||
If Not DBFile.Exists() Then
|
||||
|
||||
Result = CreateNewProject(FullPath);
|
||||
|
||||
If Result["result"] Then
|
||||
Text = "The project file has been successfully created!";
|
||||
Response = FormResponse(True, Text, FullPath);
|
||||
Else
|
||||
Response = Result;
|
||||
EndIf;
|
||||
|
||||
Else
|
||||
|
||||
Text = "The project file at the given path already exists!";
|
||||
Response = FormResponse(False, Text, FullPath);
|
||||
|
||||
EndIf;
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function FormResponse(Val Result, Val Text, Val Path = "")
|
||||
|
||||
Response = New Structure("result,message", False, Text);
|
||||
|
||||
If ValueIsFilled(Path) Then
|
||||
Response.Insert("path", Path);
|
||||
EndIf;
|
||||
|
||||
Return Response;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function ConstantValue(Val Key)
|
||||
|
||||
If Key = "HandlersTable" Then Return "handlers"
|
||||
Else Return "" EndIf;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateNewProject(Path)
|
||||
|
||||
EmptyFile = GetBinaryDataFromString("");
|
||||
EmptyFile.Write(Path);
|
||||
|
||||
Result = CreateHandlersTable(Path);
|
||||
|
||||
If Not Result["reuslt"] Then
|
||||
DeleteFiles(Path);
|
||||
Return Result;
|
||||
EndIf;
|
||||
|
||||
EndFunction
|
||||
|
||||
Function CreateHandlersTable(Path)
|
||||
|
||||
TableStructure = New Structure();
|
||||
TableStructure.Insert("id" , "INTEGER PRIMARY KEY");
|
||||
TableStructure.Insert("name" , "TEXT");
|
||||
TableStructure.Insert("secret", "TEXT");
|
||||
TableStructure.Insert("method", "TEXT");
|
||||
|
||||
HandlersTableName = ConstantValue("HandlersTable");
|
||||
Result = OPI_SQLite.CreateTable(HandlersTableName, TableStructure, Path);
|
||||
|
||||
Return Result;
|
||||
|
||||
EndFunction
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region Handlers
|
||||
|
||||
Procedure MainHandler(Context, NexHandler) Export
|
||||
|
||||
Try
|
||||
ProcessRequest(Context);
|
||||
Except
|
||||
|
||||
Error = ErrorDescription();
|
||||
|
||||
Context.Response.StatusCode = 500;
|
||||
Context.Response.Write(Error);
|
||||
|
||||
EndTry
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure ProcessRequest(Context)
|
||||
|
||||
// Path = Context.Request.Path;
|
||||
|
||||
Context.Response.StatusCode = 200;
|
||||
Context.Response.Write("Hello world!");
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#EndRegion
|
11
src/en/OPI/src/CommonModules/OPI_IntegrationProxy/OPI_IntegrationProxy.mdo
vendored
Normal file
11
src/en/OPI/src/CommonModules/OPI_IntegrationProxy/OPI_IntegrationProxy.mdo
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e6d1c89a-60de-4d98-8a76-aa2fa9422fd1">
|
||||
<name>OPI_IntegrationProxy</name>
|
||||
<synonym>
|
||||
<key>en</key>
|
||||
<value>Integration proxy</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -72,4 +72,5 @@
|
||||
<commonModules>CommonModule.OPI_Tests</commonModules>
|
||||
<commonModules>CommonModule.OPI_TestsCLI</commonModules>
|
||||
<commonModules>CommonModule.OPI_TestDataRetrieval</commonModules>
|
||||
<commonModules>CommonModule.OPI_IntegrationProxy</commonModules>
|
||||
</mdclass:Configuration>
|
||||
|
@ -12,33 +12,75 @@
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "ПроtowithandHost";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "CreateProject";
|
||||
NewLine.МетодПоиска = "CREATEPROJECT";
|
||||
NewLine.Параметр = "--path";
|
||||
NewLine.Описание = "Project filepath";
|
||||
NewLine.Область = "Proxy settings";
|
||||
NewLine.ОписаниеМетода = "Creates a project file at the selected path";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "AddRequestsHandler";
|
||||
NewLine.МетодПоиска = "ADDREQUESTSHANDLER";
|
||||
NewLine.Параметр = "--proj";
|
||||
NewLine.Описание = "Project filepath";
|
||||
NewLine.Область = "Proxy settings";
|
||||
NewLine.ОписаниеМетода = "Adds a new handler to the project";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "AddRequestsHandler";
|
||||
NewLine.МетодПоиска = "ADDREQUESTSHANDLER";
|
||||
NewLine.Параметр = "--name";
|
||||
NewLine.Описание = "Name of the new handler";
|
||||
NewLine.Область = "Proxy settings";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "AddRequestsHandler";
|
||||
NewLine.МетодПоиска = "ADDREQUESTSHANDLER";
|
||||
NewLine.Параметр = "--secret";
|
||||
NewLine.Описание = "Secret key for URL handler";
|
||||
NewLine.Область = "Proxy settings";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "AddRequestsHandler";
|
||||
NewLine.МетодПоиска = "ADDREQUESTSHANDLER";
|
||||
NewLine.Параметр = "--method";
|
||||
NewLine.Описание = "HTTP method that will process the handler: GET, POST, MULTIPART (optional, def. val. - GET)";
|
||||
NewLine.Область = "Proxy settings";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "Start";
|
||||
NewLine.МетодПоиска = "ЗАПУСТAndТЬ";
|
||||
NewLine.МетодПоиска = "START";
|
||||
NewLine.Параметр = "--port";
|
||||
NewLine.Описание = "Servers port";
|
||||
NewLine.Область = "Service";
|
||||
NewLine.Область = "Proxy settings";
|
||||
NewLine.ОписаниеМетода = "Launches integration proxy server";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "ПроtowithandHost";
|
||||
NewLine.Модуль = "OPI_IntegrationProxy";
|
||||
NewLine.Метод = "Start";
|
||||
NewLine.МетодПоиска = "ЗАПУСТAndТЬ";
|
||||
NewLine.МетодПоиска = "START";
|
||||
NewLine.Параметр = "--proj";
|
||||
NewLine.Описание = "Project filepath";
|
||||
NewLine.Область = "Service";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
NewLine.Библиотека = "proxy";
|
||||
NewLine.Модуль = "ПроtowithandHost";
|
||||
NewLine.Метод = "Start";
|
||||
NewLine.МетодПоиска = "ЗАПУСТAndТЬ";
|
||||
NewLine.Параметр = "--pass";
|
||||
NewLine.Описание = "Project password";
|
||||
NewLine.Область = "Service";
|
||||
NewLine.Область = "Proxy settings";
|
||||
|
||||
Return CompositionTable;
|
||||
EndFunction
|
||||
|
2
src/en/cli/data/Classes/СоставБиблиотеки.os
vendored
2
src/en/cli/data/Classes/СоставБиблиотеки.os
vendored
@ -6,7 +6,6 @@
|
||||
|
||||
Функция ПолучитьСоответствиеКомандМодулей() Экспорт
|
||||
СоответствиеКомандМодулей = Новый Соответствие();
|
||||
СоответствиеКомандМодулей.Вставить("proxy", "ПроксиСервер");
|
||||
СоответствиеКомандМодулей.Вставить("tools", "Утилиты");
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
@ -16,6 +15,7 @@
|
||||
СоответствиеКомандМодулей.Вставить("gdrive", "OPI_GoogleDrive");
|
||||
СоответствиеКомандМодулей.Вставить("gsheets", "OPI_GoogleSheets");
|
||||
СоответствиеКомандМодулей.Вставить("google", "OPI_GoogleWorkspace");
|
||||
СоответствиеКомандМодулей.Вставить("proxy", "OPI_IntegrationProxy");
|
||||
СоответствиеКомандМодулей.Вставить("mongodb", "OPI_MongoDB");
|
||||
СоответствиеКомандМодулей.Вставить("neocities", "OPI_Neocities");
|
||||
СоответствиеКомандМодулей.Вставить("notion", "OPI_Notion");
|
||||
|
@ -1,8 +0,0 @@
|
||||
Процедура ОбработатьМеню(Контекст) Экспорт
|
||||
|
||||
Контекст.Ответ.Записать("
|
||||
|<li hx-get=""/api/content/1"" hx-target=""#content"">Action 1</li>
|
||||
|<li hx-get=""/api/content/2"" hx-target=""#content"">Action 2</li>
|
||||
|<li hx-get=""/api/content/3"" hx-target=""#content"">Action 3</li>");
|
||||
|
||||
КонецПроцедуры
|
@ -1,33 +0,0 @@
|
||||
Процедура ВернутьСтатику(Контекст, ПутьКФайлу) Экспорт
|
||||
|
||||
ПутьКФайлуСтатики = КаталогСтатики() + ПутьКФайлу;
|
||||
ФайлСтатики = Новый Файл(ПутьКФайлуСтатики);
|
||||
|
||||
Если ФайлСтатики.Существует() Тогда
|
||||
Данные = Новый ФайловыйПоток(ПутьКФайлуСтатики, РежимОткрытияФайла.Открыть);
|
||||
Данные.КопироватьВ(Контекст.Ответ.Тело);
|
||||
Данные.Закрыть();
|
||||
Иначе
|
||||
Контекст.Ответ.КодСостояния = 404;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КаталогСтатики()
|
||||
|
||||
КаталогОбработчика = СтрЗаменить(ТекущийСценарий().Каталог, "\", "/");
|
||||
|
||||
ЭлементыПути = СтрРазделить(КаталогОбработчика, "/");
|
||||
|
||||
Для Н = 1 По 6 Цикл
|
||||
ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
|
||||
КонецЦикла;
|
||||
|
||||
ЭлементыПути.Добавить("web");
|
||||
|
||||
ПутьСтатики = СтрСоединить(ЭлементыПути, "/");
|
||||
ПутьСтатики = ПутьСтатики + "/";
|
||||
|
||||
Возврат ПутьСтатики;
|
||||
|
||||
КонецФункции
|
@ -1,40 +0,0 @@
|
||||
#Использовать "internal"
|
||||
|
||||
Перем Проект;
|
||||
|
||||
Процедура ПриСозданииОбъекта(ПереданныйПроект)
|
||||
Проект = ПереданныйПроект;
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(ОписаниеОшибки());
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
Путь = Контекст.Запрос.Путь;
|
||||
|
||||
Если Путь = "/web" Тогда
|
||||
|
||||
Статика.ВернутьСтатику(Контекст, "index.html");
|
||||
|
||||
ИначеЕсли Путь = "/api/menu" Тогда
|
||||
|
||||
Меню.ОбработатьМеню(Контекст, Проект);
|
||||
|
||||
Иначе
|
||||
|
||||
Контекст.Ответ.КодСостояния = 404;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
34
src/en/cli/tools/Modules/ПроксиСервер.os
vendored
34
src/en/cli/tools/Modules/ПроксиСервер.os
vendored
@ -1,34 +0,0 @@
|
||||
// CLI: proxy
|
||||
|
||||
#Использовать "internal"
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Запустить
|
||||
// Запускает прокси сервер интеграций
|
||||
//
|
||||
// Параметры:
|
||||
// Порт - Число - Порт запуска сервера - port
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Пароль - Строка - Пароль проекта - pass
|
||||
// Возвращаемое значение:
|
||||
// Строка - пустая строка
|
||||
Функция Запустить(Знач Порт, Знач Проект, Знач Пароль) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
|
||||
|
||||
ВебСервер = Новый ВебСервер(Порт);
|
||||
Обработчик = Новый ОбработчикЗапросов();
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
|
||||
ВебСервер.Запустить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
54
src/en/cli/web/index.html
vendored
54
src/en/cli/web/index.html
vendored
@ -1,54 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>GitHub Actions Interface with HTMX</title>
|
||||
<script src="https://unpkg.com/htmx.org@1.9.10"></script>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
}
|
||||
.sidebar {
|
||||
width: 200px;
|
||||
background-color: #f4f4f4;
|
||||
padding: 20px;
|
||||
box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.sidebar ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
.sidebar ul li {
|
||||
margin: 15px 0;
|
||||
cursor: pointer;
|
||||
color: #0366d6;
|
||||
}
|
||||
.sidebar ul li:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.main-content {
|
||||
flex-grow: 1;
|
||||
padding: 20px;
|
||||
background-color: #fff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sidebar">
|
||||
<ul id="menu" hx-get="/api/menu" hx-trigger="load">
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="main-content" id="content">
|
||||
</div>
|
||||
|
||||
<template id="menu-item-template">
|
||||
<li hx-get="/api/content/{id}" hx-target="#content">{name}</li>
|
||||
</template>
|
||||
</body>
|
||||
</html>
|
120
src/ru/OInt/core/Modules/OPI_ПроксиИнтеграций.os
vendored
120
src/ru/OInt/core/Modules/OPI_ПроксиИнтеграций.os
vendored
@ -48,37 +48,37 @@
|
||||
|
||||
// Создать проект
|
||||
// Создает файл проекта по выбранному пути
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Путь - Строка - Путь к файлу проекта - path
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат создания
|
||||
Функция СоздатьПроект(Знач Путь) Экспорт
|
||||
|
||||
|
||||
Возврат НормализоватьПроект(Путь);
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить обработчик запроса
|
||||
// Добавить обработчик запросов
|
||||
// Добавляет новый обработчик в проект
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Имя - Строка - Имя нового обработчика - name
|
||||
// СекретныйКлюч - Строка - Секретный ключ для URL обработчика - secret
|
||||
// Метод - Строка - HTTP метод, который будет обрабатывать обработчик - method
|
||||
//
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Имя - Строка - Имя нового обработчика - name
|
||||
// СекретныйКлюч - Строка - Секретный ключ для URL обработчика - secret
|
||||
// Метод - Строка - HTTP метод, который будет обрабатывать обработчик: GET, POST, MULTIPART - method
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат добавления обработчика
|
||||
Функция ДобавитьОбработчикЗапроса(Знач Проект, Знач Имя, Знач СекретныйКлюч, Знач Метод = "GET") Экспорт
|
||||
|
||||
Функция ДобавитьОбработчикЗапросов(Знач Проект, Знач Имя, Знач СекретныйКлюч, Знач Метод = "GET") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СекретныйКлюч);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
|
||||
|
||||
|
||||
Результат = ПроверитьСуществованиеПроекта(Проект);
|
||||
|
||||
|
||||
Если Не Результат["result"] Тогда
|
||||
Возврат Результат;
|
||||
Иначе
|
||||
@ -89,36 +89,36 @@
|
||||
МассивДанных.Добавить(Новый Структура("name,secret,method", Имя, СекретныйКлюч, Метод));
|
||||
|
||||
ИмяТаблицыОбработчиков = КонстантноеЗначение("ТаблицаОбработчиков");
|
||||
Результат = OPI_SQLite.ДобавитьЗаписи(ИмяТаблицыОбработчиков, МассивДанных, , Проект);
|
||||
Результат = OPI_SQLite.ДобавитьЗаписи(ИмяТаблицыОбработчиков, МассивДанных, , Проект);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Запустить
|
||||
// Запускает прокси сервер интеграций
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Порт - Число - Порт запуска сервера - port
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат остановки сервера
|
||||
Функция Запустить(Знач Порт, Знач Проект) Экспорт
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
|
||||
|
||||
|
||||
ТипСервер = Тип("ВебСервер");
|
||||
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
ПараметрыСервера[0] = Порт;
|
||||
|
||||
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(ЭтотОбъект, "ОсновнаяОбработка");
|
||||
ВебСервер.Запустить();
|
||||
|
||||
|
||||
Возврат СформироватьОтвет(Истина, "Остановлен");
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@ -132,23 +132,23 @@
|
||||
Функция ПроверитьСуществованиеПроекта(Путь)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
|
||||
|
||||
ФайлПроекта = Новый Файл(Путь);
|
||||
Текст = "Файл проекта существует!";
|
||||
Результат = Истина;
|
||||
|
||||
Если Не ФайлПроекта.Существует() Тогда
|
||||
Текст = "Файл проекта по указанному пути не найден!";
|
||||
Результат = Ложь;
|
||||
Текст = "Файл проекта по указанному пути не найден!";
|
||||
Результат = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФайлПроекта.ЭтоКаталог() Тогда
|
||||
Текст = "Передан путь к каталогу, а не файл проекта!";
|
||||
Результат = Ложь;
|
||||
Текст = "Передан путь к каталогу, а не файл проекта!";
|
||||
Результат = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
СтруктураОтвета = СформироватьОтвет(Результат, Текст, ФайлПроекта.ПолноеИмя);
|
||||
|
||||
|
||||
Возврат СтруктураОтвета;
|
||||
|
||||
КонецФункции
|
||||
@ -156,15 +156,15 @@
|
||||
Функция НормализоватьПроект(Путь)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
|
||||
|
||||
ФайлБазы = Новый Файл(Путь);
|
||||
|
||||
|
||||
Если ФайлБазы.ЭтоКаталог() Тогда
|
||||
|
||||
Счетчик = 1;
|
||||
|
||||
Пока ФайлБазы.Существует() Цикл
|
||||
|
||||
|
||||
Путь = Путь + "/new_project_" + Строка(Счетчик) + ".oint";
|
||||
ФайлБазы = Новый Файл(Путь);
|
||||
|
||||
@ -175,60 +175,60 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПолныйПуть = ФайлБазы.ПолноеИмя;
|
||||
|
||||
|
||||
Если Не ФайлБазы.Существует() Тогда
|
||||
|
||||
|
||||
Результат = СоздатьНовыйПроект(ПолныйПуть);
|
||||
|
||||
|
||||
Если Результат["result"] Тогда
|
||||
Текст = "Файл проекта успешно создан!";
|
||||
Текст = "Файл проекта успешно создан!";
|
||||
Ответ = СформироватьОтвет(Истина, Текст, ПолныйПуть);
|
||||
Иначе
|
||||
Ответ = Результат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Текст = "Файл проекта по заданному пути уже существует!";
|
||||
Ответ = СформироватьОтвет(Ложь, Текст, ПолныйПуть);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьОтвет(Знач Результат, Знач Текст, Знач Путь = "")
|
||||
|
||||
|
||||
Ответ = Новый Структура("result,message", Ложь, Текст);
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Путь) Тогда
|
||||
Ответ.Вставить("path", Путь);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КонстантноеЗначение(Знач Ключ)
|
||||
|
||||
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
|
||||
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
|
||||
Иначе Возврат "" КонецЕсли;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоздатьНовыйПроект(Путь)
|
||||
|
||||
|
||||
ПустойФайл = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
ПустойФайл.Записать(Путь);
|
||||
|
||||
|
||||
Результат = СоздатьТаблицуОбработчиков(Путь);
|
||||
|
||||
|
||||
Если Не Результат["reuslt"] Тогда
|
||||
УдалитьФайлы(Путь);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоздатьТаблицуОбработчиков(Путь)
|
||||
@ -240,8 +240,8 @@
|
||||
СтруктураТаблицы.Вставить("method", "TEXT");
|
||||
|
||||
ИмяТаблицыОбработчиков = КонстантноеЗначение("ТаблицаОбработчиков");
|
||||
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыОбработчиков, СтруктураТаблицы, Путь);
|
||||
|
||||
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыОбработчиков, СтруктураТаблицы, Путь);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@ -252,15 +252,15 @@
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
@ -268,7 +268,7 @@
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
// Путь = Контекст.Запрос.Путь;
|
||||
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
|
@ -2138,9 +2138,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
@ -48,37 +48,37 @@
|
||||
|
||||
// Создать проект
|
||||
// Создает файл проекта по выбранному пути
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Путь - Строка - Путь к файлу проекта - path
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат создания
|
||||
Функция СоздатьПроект(Знач Путь) Экспорт
|
||||
|
||||
|
||||
Возврат НормализоватьПроект(Путь);
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить обработчик запросов
|
||||
// Добавляет новый обработчик в проект
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Имя - Строка - Имя нового обработчика - name
|
||||
// СекретныйКлюч - Строка - Секретный ключ для URL обработчика - secret
|
||||
// Метод - Строка - HTTP метод, который будет обрабатывать обработчик: GET, POST, MULTIPART - method
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат добавления обработчика
|
||||
Функция ДобавитьОбработчикЗапросов(Знач Проект, Знач Имя, Знач СекретныйКлюч, Знач Метод = "GET") Экспорт
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Имя);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(СекретныйКлюч);
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Метод);
|
||||
|
||||
|
||||
Результат = ПроверитьСуществованиеПроекта(Проект);
|
||||
|
||||
|
||||
Если Не Результат["result"] Тогда
|
||||
Возврат Результат;
|
||||
Иначе
|
||||
@ -89,36 +89,36 @@
|
||||
МассивДанных.Добавить(Новый Структура("name,secret,method", Имя, СекретныйКлюч, Метод));
|
||||
|
||||
ИмяТаблицыОбработчиков = КонстантноеЗначение("ТаблицаОбработчиков");
|
||||
Результат = OPI_SQLite.ДобавитьЗаписи(ИмяТаблицыОбработчиков, МассивДанных, , Проект);
|
||||
Результат = OPI_SQLite.ДобавитьЗаписи(ИмяТаблицыОбработчиков, МассивДанных, , Проект);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Запустить
|
||||
// Запускает прокси сервер интеграций
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Порт - Число - Порт запуска сервера - port
|
||||
// Проект - Строка - Путь к файлу проекта - proj
|
||||
// Возвращаемое значение:
|
||||
// Структура Из КлючИЗначение - результат остановки сервера
|
||||
Функция Запустить(Знач Порт, Знач Проект) Экспорт
|
||||
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
|
||||
|
||||
|
||||
ТипСервер = Тип("ВебСервер");
|
||||
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
|
||||
ПараметрыСервера = Новый Массив(1);
|
||||
ПараметрыСервера[0] = Порт;
|
||||
|
||||
|
||||
ВебСервер = Новый(ТипСервер, ПараметрыСервера);
|
||||
|
||||
|
||||
ВебСервер.ДобавитьОбработчикЗапросов(ЭтотОбъект, "ОсновнаяОбработка");
|
||||
ВебСервер.Запустить();
|
||||
|
||||
|
||||
Возврат СформироватьОтвет(Истина, "Остановлен");
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@ -132,23 +132,23 @@
|
||||
Функция ПроверитьСуществованиеПроекта(Путь)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
|
||||
|
||||
ФайлПроекта = Новый Файл(Путь);
|
||||
Текст = "Файл проекта существует!";
|
||||
Результат = Истина;
|
||||
|
||||
Если Не ФайлПроекта.Существует() Тогда
|
||||
Текст = "Файл проекта по указанному пути не найден!";
|
||||
Результат = Ложь;
|
||||
Текст = "Файл проекта по указанному пути не найден!";
|
||||
Результат = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФайлПроекта.ЭтоКаталог() Тогда
|
||||
Текст = "Передан путь к каталогу, а не файл проекта!";
|
||||
Результат = Ложь;
|
||||
Текст = "Передан путь к каталогу, а не файл проекта!";
|
||||
Результат = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
СтруктураОтвета = СформироватьОтвет(Результат, Текст, ФайлПроекта.ПолноеИмя);
|
||||
|
||||
|
||||
Возврат СтруктураОтвета;
|
||||
|
||||
КонецФункции
|
||||
@ -156,15 +156,15 @@
|
||||
Функция НормализоватьПроект(Путь)
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
|
||||
|
||||
|
||||
ФайлБазы = Новый Файл(Путь);
|
||||
|
||||
|
||||
Если ФайлБазы.ЭтоКаталог() Тогда
|
||||
|
||||
Счетчик = 1;
|
||||
|
||||
Пока ФайлБазы.Существует() Цикл
|
||||
|
||||
|
||||
Путь = Путь + "/new_project_" + Строка(Счетчик) + ".oint";
|
||||
ФайлБазы = Новый Файл(Путь);
|
||||
|
||||
@ -175,60 +175,60 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПолныйПуть = ФайлБазы.ПолноеИмя;
|
||||
|
||||
|
||||
Если Не ФайлБазы.Существует() Тогда
|
||||
|
||||
|
||||
Результат = СоздатьНовыйПроект(ПолныйПуть);
|
||||
|
||||
|
||||
Если Результат["result"] Тогда
|
||||
Текст = "Файл проекта успешно создан!";
|
||||
Текст = "Файл проекта успешно создан!";
|
||||
Ответ = СформироватьОтвет(Истина, Текст, ПолныйПуть);
|
||||
Иначе
|
||||
Ответ = Результат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
Текст = "Файл проекта по заданному пути уже существует!";
|
||||
Ответ = СформироватьОтвет(Ложь, Текст, ПолныйПуть);
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьОтвет(Знач Результат, Знач Текст, Знач Путь = "")
|
||||
|
||||
|
||||
Ответ = Новый Структура("result,message", Ложь, Текст);
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Путь) Тогда
|
||||
Ответ.Вставить("path", Путь);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Возврат Ответ;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КонстантноеЗначение(Знач Ключ)
|
||||
|
||||
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
|
||||
Если Ключ = "ТаблицаОбработчиков" Тогда Возврат "handlers"
|
||||
Иначе Возврат "" КонецЕсли;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоздатьНовыйПроект(Путь)
|
||||
|
||||
|
||||
ПустойФайл = ПолучитьДвоичныеДанныеИзСтроки("");
|
||||
ПустойФайл.Записать(Путь);
|
||||
|
||||
|
||||
Результат = СоздатьТаблицуОбработчиков(Путь);
|
||||
|
||||
|
||||
Если Не Результат["reuslt"] Тогда
|
||||
УдалитьФайлы(Путь);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоздатьТаблицуОбработчиков(Путь)
|
||||
@ -240,8 +240,8 @@
|
||||
СтруктураТаблицы.Вставить("method", "TEXT");
|
||||
|
||||
ИмяТаблицыОбработчиков = КонстантноеЗначение("ТаблицаОбработчиков");
|
||||
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыОбработчиков, СтруктураТаблицы, Путь);
|
||||
|
||||
Результат = OPI_SQLite.СоздатьТаблицу(ИмяТаблицыОбработчиков, СтруктураТаблицы, Путь);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@ -252,15 +252,15 @@
|
||||
|
||||
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
Попытка
|
||||
ОбработатьЗапрос(Контекст);
|
||||
Исключение
|
||||
|
||||
|
||||
Ошибка = ОписаниеОшибки();
|
||||
|
||||
Контекст.Ответ.КодСостояния = 500;
|
||||
Контекст.Ответ.Записать(Ошибка);
|
||||
|
||||
|
||||
КонецПопытки
|
||||
|
||||
КонецПроцедуры
|
||||
@ -268,7 +268,7 @@
|
||||
Процедура ОбработатьЗапрос(Контекст)
|
||||
|
||||
// Путь = Контекст.Запрос.Путь;
|
||||
|
||||
|
||||
Контекст.Ответ.КодСостояния = 200;
|
||||
Контекст.Ответ.Записать("Hello world!");
|
||||
|
||||
@ -276,4 +276,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
|
@ -12,33 +12,75 @@
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "ПроксиСервер";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "СоздатьПроект";
|
||||
НоваяСтрока.МетодПоиска = "СОЗДАТЬПРОЕКТ";
|
||||
НоваяСтрока.Параметр = "--path";
|
||||
НоваяСтрока.Описание = "Путь к файлу проекта";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
НоваяСтрока.ОписаниеМетода = "Создает файл проекта по выбранному пути";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "ДобавитьОбработчикЗапросов";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬОБРАБОТЧИКЗАПРОСОВ";
|
||||
НоваяСтрока.Параметр = "--proj";
|
||||
НоваяСтрока.Описание = "Путь к файлу проекта";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
НоваяСтрока.ОписаниеМетода = "Добавляет новый обработчик в проект";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "ДобавитьОбработчикЗапросов";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬОБРАБОТЧИКЗАПРОСОВ";
|
||||
НоваяСтрока.Параметр = "--name";
|
||||
НоваяСтрока.Описание = "Имя нового обработчика";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "ДобавитьОбработчикЗапросов";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬОБРАБОТЧИКЗАПРОСОВ";
|
||||
НоваяСтрока.Параметр = "--secret";
|
||||
НоваяСтрока.Описание = "Секретный ключ для URL обработчика";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "ДобавитьОбработчикЗапросов";
|
||||
НоваяСтрока.МетодПоиска = "ДОБАВИТЬОБРАБОТЧИКЗАПРОСОВ";
|
||||
НоваяСтрока.Параметр = "--method";
|
||||
НоваяСтрока.Описание = "HTTP метод, который будет обрабатывать обработчик: GET, POST, MULTIPART (необяз. по ум. - GET)";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "Запустить";
|
||||
НоваяСтрока.МетодПоиска = "ЗАПУСТИТЬ";
|
||||
НоваяСтрока.Параметр = "--port";
|
||||
НоваяСтрока.Описание = "Порт запуска сервера";
|
||||
НоваяСтрока.Область = "Служебный программный интерфейс";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
НоваяСтрока.ОписаниеМетода = "Запускает прокси сервер интеграций";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "ПроксиСервер";
|
||||
НоваяСтрока.Модуль = "OPI_ПроксиИнтеграций";
|
||||
НоваяСтрока.Метод = "Запустить";
|
||||
НоваяСтрока.МетодПоиска = "ЗАПУСТИТЬ";
|
||||
НоваяСтрока.Параметр = "--proj";
|
||||
НоваяСтрока.Описание = "Путь к файлу проекта";
|
||||
НоваяСтрока.Область = "Служебный программный интерфейс";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "proxy";
|
||||
НоваяСтрока.Модуль = "ПроксиСервер";
|
||||
НоваяСтрока.Метод = "Запустить";
|
||||
НоваяСтрока.МетодПоиска = "ЗАПУСТИТЬ";
|
||||
НоваяСтрока.Параметр = "--pass";
|
||||
НоваяСтрока.Описание = "Пароль проекта";
|
||||
НоваяСтрока.Область = "Служебный программный интерфейс";
|
||||
НоваяСтрока.Область = "Настройки прокси";
|
||||
|
||||
Возврат ТаблицаСостава;
|
||||
КонецФункции
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
Функция ПолучитьСоответствиеКомандМодулей() Экспорт
|
||||
СоответствиеКомандМодулей = Новый Соответствие();
|
||||
СоответствиеКомандМодулей.Вставить("proxy", "ПроксиСервер");
|
||||
СоответствиеКомандМодулей.Вставить("tools", "Утилиты");
|
||||
СоответствиеКомандМодулей.Вставить("airtable", "OPI_Airtable");
|
||||
СоответствиеКомандМодулей.Вставить("bitrix24", "OPI_Bitrix24");
|
||||
@ -33,6 +32,7 @@
|
||||
СоответствиеКомандМодулей.Вставить("yandex", "OPI_YandexID");
|
||||
СоответствиеКомандМодулей.Вставить("yamarket", "OPI_YandexMarket");
|
||||
СоответствиеКомандМодулей.Вставить("metrika", "OPI_YandexMetrika");
|
||||
СоответствиеКомандМодулей.Вставить("proxy", "OPI_ПроксиИнтеграций");
|
||||
Возврат СоответствиеКомандМодулей;
|
||||
КонецФункции
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user