1
0
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:
Vitaly the Alpaca (bot) 2025-01-29 16:59:34 +03:00
parent 673fe1153c
commit 02c236c6f0
28 changed files with 7336 additions and 6614 deletions

40
ci/clitesten vendored
View File

@ -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
View File

@ -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()
}
}

View 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"
```

View 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 | &#x2714; | Project filepath |
Returns: Structure Of KeyAndValue - creation result
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View 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 | &#x2714; | Servers port |
| Project | --proj | String | &#x2714; | Project filepath |
Returns: Structure Of KeyAndValue - server shutdown result
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```

View File

@ -0,0 +1,4 @@
{
"label": "Proxy settings",
"position": "2"
}

View File

@ -0,0 +1,37 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Добавить обработчик запросов
Добавляет новый обработчик в проект
`Функция ДобавитьОбработчикЗапросов(Знач Проект, Знач Имя, Знач СекретныйКлюч, Знач Метод = "GET") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Проект | --proj | Строка | &#x2714; | Путь к файлу проекта |
| Имя | --name | Строка | &#x2714; | Имя нового обработчика |
| СекретныйКлюч | --secret | Строка | &#x2714; | Секретный ключ для URL обработчика |
| Метод | --method | Строка | &#x2716; | HTTP метод, который будет обрабатывать обработчик: GET, POST, MULTIPART |
Возвращаемое значение: Структура Из КлючИЗначение - результат добавления обработчика
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,34 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Создать проект
Создает файл проекта по выбранному пути
`Функция СоздатьПроект(Знач Путь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Путь | --path | Строка | &#x2714; | Путь к файлу проекта |
Возвращаемое значение: Структура Из КлючИЗначение - результат создания
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,35 @@
---
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Запустить
Запускает прокси сервер интеграций
`Функция Запустить(Знач Порт, Знач Проект) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Порт | --port | Число | &#x2714; | Порт запуска сервера |
| Проект | --proj | Строка | &#x2714; | Путь к файлу проекта |
Возвращаемое значение: Структура Из КлючИЗначение - результат остановки сервера
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```

View File

@ -0,0 +1,4 @@
{
"label": "Настройки прокси",
"position": "2"
}

File diff suppressed because it is too large Load Diff

View 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

View File

@ -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>

View 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

View 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>

View File

@ -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>

View File

@ -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

View File

@ -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");

View File

@ -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>");
КонецПроцедуры

View File

@ -1,33 +0,0 @@
Процедура ВернутьСтатику(Контекст, ПутьКФайлу) Экспорт
ПутьКФайлуСтатики = КаталогСтатики() + ПутьКФайлу;
ФайлСтатики = Новый Файл(ПутьКФайлуСтатики);
Если ФайлСтатики.Существует() Тогда
Данные = Новый ФайловыйПоток(ПутьКФайлуСтатики, РежимОткрытияФайла.Открыть);
Данные.КопироватьВ(Контекст.Ответ.Тело);
Данные.Закрыть();
Иначе
Контекст.Ответ.КодСостояния = 404;
КонецЕсли;
КонецПроцедуры
Функция КаталогСтатики()
КаталогОбработчика = СтрЗаменить(ТекущийСценарий().Каталог, "\", "/");
ЭлементыПути = СтрРазделить(КаталогОбработчика, "/");
Для Н = 1 По 6 Цикл
ЭлементыПути.Удалить(ЭлементыПути.ВГраница());
КонецЦикла;
ЭлементыПути.Добавить("web");
ПутьСтатики = СтрСоединить(ЭлементыПути, "/");
ПутьСтатики = ПутьСтатики + "/";
Возврат ПутьСтатики;
КонецФункции

View File

@ -1,40 +0,0 @@
#Использовать "internal"
Перем Проект;
Процедура ПриСозданииОбъекта(ПереданныйПроект)
Проект = ПереданныйПроект;
КонецПроцедуры
Процедура ОсновнаяОбработка(Контекст, СледующийОбработчик) Экспорт
Попытка
ОбработатьЗапрос(Контекст);
Исключение
Контекст.Ответ.КодСостояния = 500;
Контекст.Ответ.Записать(ОписаниеОшибки());
КонецПопытки
КонецПроцедуры
Процедура ОбработатьЗапрос(Контекст)
Путь = Контекст.Запрос.Путь;
Если Путь = "/web" Тогда
Статика.ВернутьСтатику(Контекст, "index.html");
ИначеЕсли Путь = "/api/menu" Тогда
Меню.ОбработатьМеню(Контекст, Проект);
Иначе
Контекст.Ответ.КодСостояния = 404;
КонецЕсли;
КонецПроцедуры

View File

@ -1,34 +0,0 @@
// CLI: proxy
#Использовать "internal"
#Область СлужебныйПрограммныйИнтерфейс
// Запустить
// Запускает прокси сервер интеграций
//
// Параметры:
// Порт - Число - Порт запуска сервера - port
// Проект - Строка - Путь к файлу проекта - proj
// Пароль - Строка - Пароль проекта - pass
// Возвращаемое значение:
// Строка - пустая строка
Функция Запустить(Знач Порт, Знач Проект, Знач Пароль) Экспорт
OPI_ПреобразованиеТипов.ПолучитьЧисло(Порт);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Проект);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Пароль);
ВебСервер = Новый ВебСервер(Порт);
Обработчик = Новый ОбработчикЗапросов();
ВебСервер.ДобавитьОбработчикЗапросов(Обработчик, "ОсновнаяОбработка");
ВебСервер.Запустить();
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти

View File

@ -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>

View File

@ -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!");

View File

@ -2138,9 +2138,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -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 @@
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -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";
НоваяСтрока.Описание = "Пароль проекта";
НоваяСтрока.Область = "Служебный программный интерфейс";
НоваяСтрока.Область = "Настройки прокси";
Возврат ТаблицаСостава;
КонецФункции

View File

@ -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_ПроксиИнтеграций");
Возврат СоответствиеКомандМодулей;
КонецФункции