1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-05-22 10:05:29 +02:00

CLI: Новый способ дополнения подсказок опций

This commit is contained in:
Anton Titovets
2024-08-12 10:52:19 +03:00
parent 80d50045fb
commit 9dfc48fedf
46 changed files with 3439 additions and 3629 deletions
@@ -8,8 +8,9 @@
Перем ТаблицаОписанийПараметров;
Перем ОбщийМассивМодулей;
Перем ТекущийФайлСостава;
Перем КаталогДополненийОпций;
Процедура СформироватьCLI(Знач Корень, Знач Языки) Экспорт
Процедура СформироватьCLI(Знач Корень, Знач Языки, Знач КаталогДополнений) Экспорт
Для Каждого Язык Из Языки Цикл
@@ -17,9 +18,10 @@
СоздатьОснову(Язык, Корень);
КонецЕсли;
МодульСоставаОПИ = Новый ТекстовыйДокумент();
ФайлСоставаОПИ = Корень + Язык + "/cli/data/Classes/СоставБиблиотеки.os";
КаталогСписковСотава = Корень + Язык + "/cli/data/Classes/internal/Classes/";
МодульСоставаОПИ = Новый ТекстовыйДокумент();
ФайлСоставаОПИ = Корень + Язык + "/cli/data/Classes/СоставБиблиотеки.os";
КаталогСписковСотава = Корень + Язык + "/cli/data/Classes/internal/Classes/";
КаталогДополненийОпций = КаталогДополнений;
ЗаписатьНачалоФайла();
ЗаписатьФункциюОпределенияВерсии();
@@ -413,218 +415,53 @@
Процедура ОпределитьДопОписаниеПоПараметру(ТекстДополнения, ИмяМодуля, ИмяПараметра)
Если ИмяМодуля = "OPI_VK" Тогда
Если ИмяПараметра = "--auth" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных авторизации (параметр --auth):
| {
| ""access_token"": """",
| ""owner_id"" : """",
| ""app_id"" : """",
| ""group_id"" : """"
| }
|";
ИначеЕсли ИмяПараметра = "--product" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных описания товара (параметр --product):
| {
| ""Имя"" : ""Новый товар"",
| ""Описание"" : ""Описание товара"",
| ""Категория"" : ""20173"",
| ""Цена"" : 1,
| ""СтараяЦена"" : """",
| ""ОсновноеФото"" : """",
| ""URL"" : """",
| ""ДополнительныеФото"" : [],
| ""ЗначенияСвойств"" : [],
| ""ГлавныйВГруппе"" : ""Ложь"",
| ""Ширина"" : """",
| ""Высота"" : """",
| ""Глубина"" : """",
| ""Вес"" : """",
| ""SKU"" : """",
| ""ДоступныйОстаток"" : ""1""
| }
|";
КонецЕсли;
КонецЕсли;
ИмяФайлаДополнения = КаталогДополненийОпций
+ СтрЗаменить(ИмяМодуля, "OPI_", "")
+ "/"
+ СтрЗаменить(ИмяПараметра, "--", "")
+ ".txt";
Если ИмяМодуля = "OPI_Telegram" Тогда
Если ИмяПараметра = "--media" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных медиагруппы (параметр --media):
| {
| ""ПутьКФайлу"": ""ТипМедиа"",
| ""ПутьКФайлу"": ""ТипМедиа"",
| ...
| }
|";
КонецЕсли;
КонецЕсли;
ОбъектФайлаДополнения = Новый Файл(ИмяФайлаДополнения);
Если ИмяМодуля = "OPI_Twitter" Тогда
Если ИмяПараметра = "--auth" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных авторизации (параметр --auth):
| {
| ""redirect_uri"" : """",
| ""client_id"" : """",
| ""client_secret"" : """",
| ""access_token"" : """",
| ""refresh_token"" : """",
| ""oauth_token"" : """",
| ""oauth_token_secret"" : """",
| ""oauth_consumer_key"" : """",
| ""oauth_consumer_secret"" : """"
| }
|";
КонецЕсли;
КонецЕсли;
Если ИмяМодуля = "OPI_Notion" Тогда
Если ИмяПараметра = "--data" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных страницы (параметр --data):
| {
| ""Имя поля БД 1"" : ""Значение1"",
| ""Имя поля БД 2"" : ""Значение2"",
| ...
| }
|";
ИначеЕсли ИмяПараметра = "--props" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON полей базы (параметр --props):
| {
| ""Имя поля БД c обычным типом"" : ""Тип данных 1"",
| ""Имя поля БД с выбором значения"" :
| {
| ""Вариант1"" : ""green"",
| ""Вариант2"" : ""red"",
| ...
| },
| ...
| }
|
| Доуступные типы: title(ключевой), rich_text, number, status,
| date, files, checkbox, url, email, phone_number, people
|";
КонецЕсли;
КонецЕсли;
Если ИмяМодуля = "OPI_GoogleCalendar" Тогда
Если ИмяПараметра = "--props" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных события (параметр --props):
| {
| ""Описание"" : """",
| ""Заголовок"" : """",
| ""МестоПроведения"" : """",
| ""ДатаНачала"" : """",
| ""ДатаОкончания"" : """",
| ""МассивURLФайловВложений"" :
| {
| ""НазваниеФайла1"" : ""URLФайла1"",
| ""НазваниеФайла2"" : ""URLФайла2"",
| ...
| },
| ""ОтправлятьУведомления"" : true
| }
|";
КонецЕсли;
Если Не ОбъектФайлаДополнения.Существует() Тогда
Возврат;
КонецЕсли;
Если ИмяМодуля = "OPI_GoogleDrive" Тогда
Если ИмяПараметра = "--props" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных объекта (параметр --props):
| {
| ""MIME"" : ""image/jpeg"",
| ""Имя"" : ""Новый файл.jpg"",
| ""Описание"" : ""Это новый файл"",
| ""Родитель"" : ""root""
| }
|";
КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент();
ТекстовыйДокумент.Прочитать(ИмяФайлаДополнения, "UTF-8");
ТекстДополненияФайла = СокрЛП(ТекстовыйДокумент.ПолучитьТекст());
Если Не ЗначениеЗаполнено(ТекстДополненияФайла) Тогда
Возврат;
КонецЕсли;
Если ИмяМодуля = "OPI_GoogleSheets" Тогда
Если ИмяПараметра = "--data" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных ячеек (параметр --data):
| {
| ""A1"": ""Это данные ячейки A1"",
| ""B2"": ""Это данные ячейки B2"",
| ...
| }
|";
КонецЕсли;
КонецЕсли;
ЧислоСтрок = СтрЧислоСтрок(ТекстДополненияФайла);
ВставленоПримечание = Ложь;
ТекстДополнения = ТекстДополнения + Символы.ПС;
Если ИмяМодуля = "OPI_Airtable" Тогда
Для Н = 1 По ЧислоСтрок Цикл
ФункцииПолей = "Функции формирования описаний полей: "
+ "ПолучитьПолеСтроковое, "
+ "ПолучитьПолеНомера, "
+ "ПолучитьПолеВложения, "
+ "ПолучитьПолеФлажка, "
+ "ПолучитьПолеДаты, "
+ "ПолучитьПолеПочты, "
+ "ПолучитьПолеТелефона, "
+ "ПолучитьПолеСсылки";
ТекущаяСтрока = СтрПолучитьСтроку(ТекстДополненияФайла, Н);
Если ИмяПараметра = "--fielddata" Тогда
ТекстДополнения = ТекстДополнения + Символы.ПС + ФункцииПолей + Символы.ПС;
КонецЕсли;
Если СтрНачинаетсяС(СокрЛ(ТекущаяСтрока), "{")
И Не ВставленоПримечание Тогда
Если ИмяПараметра = "--fieldsdata" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных массива полей (параметр --fieldsdata):
| [
| {
| <Данные описание поля 1>
| },
| {
| <Данные описание поля 2>
| },
| ]
|";
ТекстДополнения = ТекстДополнения + Символы.ПС + ФункцииПолей + Символы.ПС;
ВставленоПримечание = Истина;
ТекстДополнения = ТекстДополнения
+ " Структура заполнения опции "
+ ИмяПараметра
+ ":"
+ Символы.ПС;
КонецЕсли;
Если ИмяПараметра = "--tablesdata" Тогда
ТекстДополнения = ТекстДополнения + "
|
| Структура JSON данных описания таблиц (параметр --tablesdata):
| {
| ""Имя таблицы 1"": [
| {
| <Данные описание поля 1>
| },
| {
| <Данные описание поля 2>
| },
| ],
| ...
| }
|";
ТекстДополнения = ТекстДополнения
+ " "
+ ТекущаяСтрока
+ Символы.ПС;
ТекстДополнения = ТекстДополнения + Символы.ПС + ФункцииПолей + Символы.ПС;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗаписатьСозданиеПараметраСостава(СтрокаПараметра, ИмяМетода, Область, ОписаниеМетода = "")
+3 -1
View File
@@ -14,6 +14,7 @@
Перем ОсновнойЯзык;
Перем КаталогWorkflow;
Перем КаталогПараметровЛок;
Перем КаталогДополнений;
Процедура ПриСозданииОбъекта()
@@ -28,6 +29,7 @@
КаталогСловарей = ДанныеПроекта["dictionariesSrc"];
КаталогWorkflow = ДанныеПроекта["workflowsSrc"];
КаталогПараметровЛок = ДанныеПроекта["locVarsSrc"];
КаталогДополнений = ДанныеПроекта["paramsExamplesSrc"];
ОсновнойПутьИсходников = Корень + ОсновнойЯзык + "/";
ПутьПакета = ОсновнойПутьИсходников + КаталогПакета;
@@ -67,7 +69,7 @@
Языки.Добавить(ОсновнойЯзык);
МетодыCLI.СформироватьCLI(Корень, Языки);
МетодыCLI.СформироватьCLI(Корень, Языки, КаталогДополнений);
МетодыФормированияТестовGA.СоздатьНаборWorkflow(Языки, КаталогПараметровЛок, КаталогWorkflow);
Иначе