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

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2024-11-10 20:00:20 +03:00
parent a9b3439f1b
commit 8fa250f6b5
46 changed files with 6015 additions and 5449 deletions
+8
View File
@@ -2496,10 +2496,18 @@ def test_metrika(){
powershell encoding: 'UTF-8', script:'./oint.exe metrika RestoreCounter --token "test" --counter "test" --debug --test ' powershell encoding: 'UTF-8', script:'./oint.exe metrika RestoreCounter --token "test" --counter "test" --debug --test '
} }
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika GetCountersList --token "test" --filter "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika GetCounterStructure --empty "test" --debug --test ' powershell encoding: 'UTF-8', script:'./oint.exe metrika GetCounterStructure --empty "test" --debug --test '
} }
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika GetCounterFilterStructure --empty "test" --debug --test '
}
} }
pipeline { pipeline {
agent any agent any
+8
View File
@@ -2496,10 +2496,18 @@ def test_metrika(){
powershell encoding: 'UTF-8', script:'./oint.exe metrika ВосстановитьСчетчик --token "test" --counter "test" --debug --test ' powershell encoding: 'UTF-8', script:'./oint.exe metrika ВосстановитьСчетчик --token "test" --counter "test" --debug --test '
} }
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika ПолучитьСписокСчетчиков --token "test" --filter "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika ПолучитьСтруктуруСчетчика --empty "test" --debug --test ' powershell encoding: 'UTF-8', script:'./oint.exe metrika ПолучитьСтруктуруСчетчика --empty "test" --debug --test '
} }
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe metrika ПолучитьСтруктуруФильтраСчетчиков --empty "test" --debug --test '
}
} }
pipeline { pipeline {
agent any agent any
@@ -0,0 +1,4 @@
{
"Token": "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...",
"CounterID": 98875788
}
@@ -1,4 +1,4 @@
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.DeleteCounter(Token, CounterID); Result = OPI_YandexMetrika.DeleteCounter(Token, CounterID);
@@ -1,4 +1,4 @@
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.GetCounter(Token, CounterID); Result = OPI_YandexMetrika.GetCounter(Token, CounterID);
@@ -0,0 +1,15 @@
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98875788";
Result = OPI_YandexMetrika.GetCountersList(Token);
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Result = OPI_YandexMetrika.GetCountersList(Token, Filter);
@@ -1,4 +1,4 @@
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.RestoreCounter(Token, CounterID); Result = OPI_YandexMetrika.RestoreCounter(Token, CounterID);
@@ -1,5 +1,5 @@
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
CounterStructure = New Structure; CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True); CounterStructure.Insert("autogoals_enabled", True);
@@ -30,7 +30,7 @@ Method at API documentation: [Deleting a counter](https://yandex.ru/dev/metrika/
```bsl title="1C:Enterprise/OneScript code example" ```bsl title="1C:Enterprise/OneScript code example"
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.DeleteCounter(Token, CounterID); Result = OPI_YandexMetrika.DeleteCounter(Token, CounterID);
``` ```
@@ -0,0 +1,37 @@
---
sidebar_position: 8
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get counter filter structure
Gets the structure of filter fields to get the list of counters
`Function GetCounterFilterStructure(Val Clear = False) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Clear | --empty | Boolean | ✖ | True > structure with empty valuse, False > field descriptions at values |
Returns: Structure of KeyAndValue - Counter field structure
<br/>
:::tip
Description in the API documentation: [List of available counters](https://yandex.ru/dev/metrika/en/management/openapi/counter/counters)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
```
@@ -1,5 +1,5 @@
--- ---
sidebar_position: 6 sidebar_position: 7
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
@@ -30,7 +30,7 @@ Method at API documentation: [Counter information](https://yandex.ru/dev/metrika
```bsl title="1C:Enterprise/OneScript code example" ```bsl title="1C:Enterprise/OneScript code example"
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.GetCounter(Token, CounterID); Result = OPI_YandexMetrika.GetCounter(Token, CounterID);
``` ```
@@ -0,0 +1,52 @@
---
sidebar_position: 6
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get counters list
Gets a list of available counters with or without filtering
`Function GetCountersList(Val Token, Val Filter = Undefined) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Token | --token | String | &#x2714; | Auth token |
| Filter | --filter | Structure of KeyAndValue | &#x2716; | List filter. See GetCounterFilterStructure |
Returns: Map Of KeyAndValue - serialized JSON response from Yandex
<br/>
:::tip
Method at API documentation: [List of available counters](https://yandex.ru/dev/metrika/en/management/openapi/counter/counters)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98875788";
Result = OPI_YandexMetrika.GetCountersList(Token);
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Result = OPI_YandexMetrika.GetCountersList(Token, Filter);
```
@@ -30,7 +30,7 @@ Method at API documentation: [Restoring a counter](https://yandex.ru/dev/metrika
```bsl title="1C:Enterprise/OneScript code example" ```bsl title="1C:Enterprise/OneScript code example"
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
Result = OPI_YandexMetrika.RestoreCounter(Token, CounterID); Result = OPI_YandexMetrika.RestoreCounter(Token, CounterID);
``` ```
@@ -31,7 +31,7 @@ Method at API documentation: [Changing a counter](https://yandex.ru/dev/metrika/
```bsl title="1C:Enterprise/OneScript code example" ```bsl title="1C:Enterprise/OneScript code example"
Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Token = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
CounterID = "98874849"; CounterID = "98875788";
CounterStructure = New Structure; CounterStructure = New Structure;
CounterStructure.Insert("autogoals_enabled", True); CounterStructure.Insert("autogoals_enabled", True);
@@ -0,0 +1,4 @@
{
"Токен": "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...",
"IDСчетчика": 98875788
}
@@ -1,4 +1,4 @@
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ВосстановитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.ВосстановитьСчетчик(Токен, IDСчетчика);
@@ -1,5 +1,5 @@
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
СтруктураСчетчика = Новый Структура; СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина); СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
@@ -0,0 +1,15 @@
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен);
// Фильтр по списку ID
Фильтр = Новый Структура;
МассивСчетчиков = Новый Массив;
МассивСчетчиков.Добавить(IDСчетчика);
Фильтр.Вставить("counter_ids", МассивСчетчиков);
Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен, Фильтр);
@@ -1,4 +1,4 @@
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ПолучитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.ПолучитьСчетчик(Токен, IDСчетчика);
@@ -1,4 +1,4 @@
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.УдалитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.УдалитьСчетчик(Токен, IDСчетчика);
@@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript" ```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.УдалитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.УдалитьСчетчик(Токен, IDСчетчика);
``` ```
@@ -0,0 +1,37 @@
---
sidebar_position: 8
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить структуру фильтра счетчиков
Получает структуру полей фильтра для получения списка счетчиков
`Функция ПолучитьСтруктуруФильтраСчетчиков(Знач Пустая = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Пустая | --empty | Булево | &#x2716; | Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей |
Возвращаемое значение: Структура Из КлючИЗначение - Структура полей счетчика
<br/>
:::tip
Описание в документации API: [Список доступных счетчиков](https://yandex.ru/dev/metrika/ru/management/openapi/counter/counters)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
```
@@ -1,5 +1,5 @@
--- ---
sidebar_position: 6 sidebar_position: 7
--- ---
import Tabs from '@theme/Tabs'; import Tabs from '@theme/Tabs';
@@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript" ```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ПолучитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.ПолучитьСчетчик(Токен, IDСчетчика);
``` ```
@@ -0,0 +1,52 @@
---
sidebar_position: 6
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить список счетчиков
Получает список доступных счетчиков с фильтром или без
`Функция ПолучитьСписокСчетчиков(Знач Токен, Знач Фильтр = Неопределено) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Токен | --token | Строка | &#x2714; | Токен авторизации |
| Фильтр | --filter | Структура Из КлючИЗначение | &#x2716; | Фильтр списка. См. ПолучитьСтруктуруФильтраСчетчиков |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
<br/>
:::tip
Метод в документации API: [Список доступных счетчиков](https://yandex.ru/dev/metrika/ru/management/openapi/counter/counters)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен);
// Фильтр по списку ID
Фильтр = Новый Структура;
МассивСчетчиков = Новый Массив;
МассивСчетчиков.Добавить(IDСчетчика);
Фильтр.Вставить("counter_ids", МассивСчетчиков);
Результат = OPI_YandexMetrika.ПолучитьСписокСчетчиков(Токен, Фильтр);
```
@@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript" ```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
Результат = OPI_YandexMetrika.ВосстановитьСчетчик(Токен, IDСчетчика); Результат = OPI_YandexMetrika.ВосстановитьСчетчик(Токен, IDСчетчика);
``` ```
@@ -31,7 +31,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript" ```bsl title="Пример использования для 1С:Предприятие/OneScript"
Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i..."; Токен = "y0_AgAAAABdylaOAAy9KgAAAAEXh6i...";
IDСчетчика = "98874849"; IDСчетчика = "98875788";
СтруктураСчетчика = Новый Структура; СтруктураСчетчика = Новый Структура;
СтруктураСчетчика.Вставить("autogoals_enabled", Истина); СтруктураСчетчика.Вставить("autogoals_enabled", Истина);
+5352 -5352
View File
File diff suppressed because it is too large Load Diff
@@ -307,6 +307,37 @@ Function RestoreCounter(Val Token, Val CounterID) Export
EndFunction EndFunction
// Get counters list
// Gets a list of available counters with or without filtering
//
// Note
// Method at API documentation: [List of available counters](@yandex.ru/dev/metrika/en/management/openapi/counter/counters)
//
// Parameters:
// Token - String - Auth token - token
// Filter - Structure of KeyAndValue - List filter. See GetCounterFilterStructure - filter
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Yandex
Function GetCountersList(Val Token, Val Filter = Undefined) Export
OPI_TypeConversion.GetCollection(Filter);
Headers = OPI_YandexID.GetAuthorizationHeader(Token);
URL = "https://api-metrika.yandex.net/management/v1/counters";
If TypeOf(Filter) <> Type("Array") And ValueIsFilled(Filter) Then
URL = URL + OPI_Tools.RequestParametersToString(Filter, True);
EndIf;
Response = OPI_Tools.Get(URL, , Headers);
Return Response;
EndFunction
// Get counter structure // Get counter structure
// Gets the structure of standard fields for counter creation // Gets the structure of standard fields for counter creation
// //
@@ -480,6 +511,45 @@ Function GetCounterStructure(Val Clear = False) Export
EndFunction EndFunction
// Get counter filter structure
// Gets the structure of filter fields to get the list of counters
//
// Note
// Description in the API documentation: [List of available counters](@yandex.ru/dev/metrika/en/management/openapi/counter/counters)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Counter field structure
Function GetCounterFilterStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
FilterStructure = New Structure;
IDArray = New Array;
IDArray.Add("<counter id for selection>");
FilterStructure.Insert("counter_ids" , IDArray);
FilterStructure.Insert("label_id" , "<filter by label>");
FilterStructure.Insert("offset" , "<sequence number of the first counter in the list>");
FilterStructure.Insert("per_page" , "<maximum number of counters in the output>");
FilterStructure.Insert("permission" , "<filter by access level>");
FilterStructure.Insert("search_string", "<filter by substring content in fields>");
FilterStructure.Insert("status" , "<filter by status>");
FilterStructure.Insert("type" , "<filter by type>");
FilterStructure.Insert("sort" , "<sorting>");
If Clear Then
FilterStructure = OPI_Tools.ClearCollectionRecursively(FilterStructure);
EndIf;
//@skip-check constructor-function-return-section
Return FilterStructure;
EndFunction
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -2094,6 +2094,7 @@ Procedure YaMetrika_CountersManagement() Export
YandexMetrika_UpdateCounter(TestParameters); YandexMetrika_UpdateCounter(TestParameters);
YandexMetrika_DeleteCounter(TestParameters); YandexMetrika_DeleteCounter(TestParameters);
YandexMetrika_RestoreCounter(TestParameters); YandexMetrika_RestoreCounter(TestParameters);
YandexMetrika_GetCountersList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters); YandexMetrika_DeleteCounter(TestParameters);
EndProcedure EndProcedure
@@ -14559,6 +14560,34 @@ Procedure YandexMetrika_RestoreCounter(FunctionParameters)
EndProcedure EndProcedure
Procedure YandexMetrika_GetCountersList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Result = OPI_YandexMetrika.GetCountersList(Token);
OPI_TestDataRetrieval.WriteLog(Result, "GetCountersList", "YandexMetrika"); // SKIP
OPI_TestDataRetrieval.Check_MetrikaCounters(Result); // SKIP
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Result = OPI_YandexMetrika.GetCountersList(Token, Filter);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetCountersList (filter))", "YandexMetrika");
OPI_TestDataRetrieval.Check_MetrikaCounters(Result);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -1962,6 +1962,10 @@ Procedure Check_MetrikaCounter(Val Result) Export
ExpectsThat(Result["counter"]).ИмеетТип("Map").Заполнено(); ExpectsThat(Result["counter"]).ИмеетТип("Map").Заполнено();
EndProcedure EndProcedure
Procedure Check_MetrikaCounters(Val Result) Export
ExpectsThat(Result["counters"]).ИмеетТип("Array").Заполнено();
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -227,7 +227,7 @@ EndFunction
#Region Service #Region Service
Function RequestParametersToString(Val Parameters) Export Function RequestParametersToString(Val Parameters, Val SplitArrayParams = False) Export
If Parameters.Count() = 0 Then If Parameters.Count() = 0 Then
Return ""; Return "";
@@ -237,7 +237,12 @@ Function RequestParametersToString(Val Parameters) Export
For Each Parameter In Parameters Do For Each Parameter In Parameters Do
ParameterValue = ConvertParameterToString(Parameter.Value); CurrentValue = Parameter.Value;
CurrentKey = Parameter.Key;
If Not TypeOf(CurrentValue) = Type("Array") Or Not SplitArrayParams Then
ParameterValue = ConvertParameterToString(CurrentValue);
ParameterString = ParameterString ParameterString = ParameterString
+ Parameter.Key + Parameter.Key
@@ -245,6 +250,13 @@ Function RequestParametersToString(Val Parameters) Export
+ ParameterValue + ParameterValue
+ "&"; + "&";
Else
ParameterValue = SplitArrayAsURLParameters(CurrentKey, CurrentValue);
ParameterString = ParameterString + ParameterValue + "&";
EndIf;
EndDo; EndDo;
ParameterString = Left(ParameterString, StrLen(ParameterString) - 1); ParameterString = Left(ParameterString, StrLen(ParameterString) - 1);
@@ -967,6 +979,26 @@ Function SplitFileKey(Val FileData, Val ContentType)
EndFunction EndFunction
Function SplitArrayAsURLParameters(Val Key, Val Value)
KeyArray = Key + "=";
For N = 0 To Value.UBound() Do
CurrentValue = Value[N];
OPI_TypeConversion.GetLine(CurrentValue);
Value.Set(N, KeyArray + CurrentValue);
EndDo;
ParameterString = StrConcat(Value, "&");
Return ParameterString;
EndFunction
Procedure SetRequestBody(Request, Val Parameters, Val JSON) Procedure SetRequestBody(Request, Val Parameters, Val JSON)
Collection = TypeOf(Parameters) = Type("Structure") Collection = TypeOf(Parameters) = Type("Structure")
@@ -1962,6 +1962,10 @@ Procedure Check_MetrikaCounter(Val Result) Export
ExpectsThat(Result["counter"]).ИмеетТип("Map").Заполнено(); ExpectsThat(Result["counter"]).ИмеетТип("Map").Заполнено();
EndProcedure EndProcedure
Procedure Check_MetrikaCounters(Val Result) Export
ExpectsThat(Result["counters"]).ИмеетТип("Array").Заполнено();
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -2094,6 +2094,7 @@ Procedure YaMetrika_CountersManagement() Export
YandexMetrika_UpdateCounter(TestParameters); YandexMetrika_UpdateCounter(TestParameters);
YandexMetrika_DeleteCounter(TestParameters); YandexMetrika_DeleteCounter(TestParameters);
YandexMetrika_RestoreCounter(TestParameters); YandexMetrika_RestoreCounter(TestParameters);
YandexMetrika_GetCountersList(TestParameters);
YandexMetrika_DeleteCounter(TestParameters); YandexMetrika_DeleteCounter(TestParameters);
EndProcedure EndProcedure
@@ -14559,6 +14560,34 @@ Procedure YandexMetrika_RestoreCounter(FunctionParameters)
EndProcedure EndProcedure
Procedure YandexMetrika_GetCountersList(FunctionParameters)
Token = FunctionParameters["Metrika_Token"];
CounterID = FunctionParameters["Metrika_CounterID"];
Result = OPI_YandexMetrika.GetCountersList(Token);
OPI_TestDataRetrieval.WriteLog(Result, "GetCountersList", "YandexMetrika"); // SKIP
OPI_TestDataRetrieval.Check_MetrikaCounters(Result); // SKIP
// filter by IDs list
Filter = New Structure;
CountersArray = New Array;
CountersArray.Add(CounterID);
Filter.Insert("counter_ids", CountersArray);
Result = OPI_YandexMetrika.GetCountersList(Token, Filter);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetCountersList (filter))", "YandexMetrika");
OPI_TestDataRetrieval.Check_MetrikaCounters(Result);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -227,7 +227,7 @@ EndFunction
#Region Service #Region Service
Function RequestParametersToString(Val Parameters) Export Function RequestParametersToString(Val Parameters, Val SplitArrayParams = False) Export
If Parameters.Count() = 0 Then If Parameters.Count() = 0 Then
Return ""; Return "";
@@ -237,7 +237,12 @@ Function RequestParametersToString(Val Parameters) Export
For Each Parameter In Parameters Do For Each Parameter In Parameters Do
ParameterValue = ConvertParameterToString(Parameter.Value); CurrentValue = Parameter.Value;
CurrentKey = Parameter.Key;
If Not TypeOf(CurrentValue) = Type("Array") Or Not SplitArrayParams Then
ParameterValue = ConvertParameterToString(CurrentValue);
ParameterString = ParameterString ParameterString = ParameterString
+ Parameter.Key + Parameter.Key
@@ -245,6 +250,13 @@ Function RequestParametersToString(Val Parameters) Export
+ ParameterValue + ParameterValue
+ "&"; + "&";
Else
ParameterValue = SplitArrayAsURLParameters(CurrentKey, CurrentValue);
ParameterString = ParameterString + ParameterValue + "&";
EndIf;
EndDo; EndDo;
ParameterString = Left(ParameterString, StrLen(ParameterString) - 1); ParameterString = Left(ParameterString, StrLen(ParameterString) - 1);
@@ -967,6 +979,26 @@ Function SplitFileKey(Val FileData, Val ContentType)
EndFunction EndFunction
Function SplitArrayAsURLParameters(Val Key, Val Value)
KeyArray = Key + "=";
For N = 0 To Value.UBound() Do
CurrentValue = Value[N];
OPI_TypeConversion.GetLine(CurrentValue);
Value.Set(N, KeyArray + CurrentValue);
EndDo;
ParameterString = StrConcat(Value, "&");
Return ParameterString;
EndFunction
Procedure SetRequestBody(Request, Val Parameters, Val JSON) Procedure SetRequestBody(Request, Val Parameters, Val JSON)
Collection = TypeOf(Parameters) = Type("Structure") Collection = TypeOf(Parameters) = Type("Structure")
@@ -307,6 +307,37 @@ Function RestoreCounter(Val Token, Val CounterID) Export
EndFunction EndFunction
// Get counters list
// Gets a list of available counters with or without filtering
//
// Note
// Method at API documentation: [List of available counters](@yandex.ru/dev/metrika/en/management/openapi/counter/counters)
//
// Parameters:
// Token - String - Auth token - token
// Filter - Structure of KeyAndValue - List filter. See GetCounterFilterStructure - filter
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Yandex
Function GetCountersList(Val Token, Val Filter = Undefined) Export
OPI_TypeConversion.GetCollection(Filter);
Headers = OPI_YandexID.GetAuthorizationHeader(Token);
URL = "https://api-metrika.yandex.net/management/v1/counters";
If TypeOf(Filter) <> Type("Array") And ValueIsFilled(Filter) Then
URL = URL + OPI_Tools.RequestParametersToString(Filter, True);
EndIf;
Response = OPI_Tools.Get(URL, , Headers);
Return Response;
EndFunction
// Get counter structure // Get counter structure
// Gets the structure of standard fields for counter creation // Gets the structure of standard fields for counter creation
// //
@@ -480,6 +511,45 @@ Function GetCounterStructure(Val Clear = False) Export
EndFunction EndFunction
// Get counter filter structure
// Gets the structure of filter fields to get the list of counters
//
// Note
// Description in the API documentation: [List of available counters](@yandex.ru/dev/metrika/en/management/openapi/counter/counters)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Counter field structure
Function GetCounterFilterStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
FilterStructure = New Structure;
IDArray = New Array;
IDArray.Add("<counter id for selection>");
FilterStructure.Insert("counter_ids" , IDArray);
FilterStructure.Insert("label_id" , "<filter by label>");
FilterStructure.Insert("offset" , "<sequence number of the first counter in the list>");
FilterStructure.Insert("per_page" , "<maximum number of counters in the output>");
FilterStructure.Insert("permission" , "<filter by access level>");
FilterStructure.Insert("search_string", "<filter by substring content in fields>");
FilterStructure.Insert("status" , "<filter by status>");
FilterStructure.Insert("type" , "<filter by type>");
FilterStructure.Insert("sort" , "<sorting>");
If Clear Then
FilterStructure = OPI_Tools.ClearCollectionRecursively(FilterStructure);
EndIf;
//@skip-check constructor-function-return-section
Return FilterStructure;
EndFunction
#EndRegion #EndRegion
#EndRegion #EndRegion
@@ -230,6 +230,27 @@
NewLine.Область = "Counters management"; NewLine.Область = "Counters management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "metrika";
NewLine.Модуль = "OPI_YandexMetrika";
NewLine.Метод = "GetCountersList";
NewLine.МетодПоиска = "GETCOUNTERSLIST";
NewLine.Параметр = "--token";
NewLine.Описание = "Auth token";
NewLine.Область = "Counters management";
NewLine.ОписаниеМетода = "Gets a list of available counters with or without filtering";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "metrika";
NewLine.Модуль = "OPI_YandexMetrika";
NewLine.Метод = "GetCountersList";
NewLine.МетодПоиска = "GETCOUNTERSLIST";
NewLine.Параметр = "--filter";
NewLine.Описание = "List filter. See GetCounterFilterStructure (optional, def. val. - Empty value)";
NewLine.Область = "Counters management";
NewLine = CompositionTable.Add(); NewLine = CompositionTable.Add();
NewLine.Библиотека = "metrika"; NewLine.Библиотека = "metrika";
NewLine.Модуль = "OPI_YandexMetrika"; NewLine.Модуль = "OPI_YandexMetrika";
@@ -240,6 +261,17 @@
NewLine.Область = "Counters management"; NewLine.Область = "Counters management";
NewLine.ОписаниеМетода = "Gets the structure of standard fields for counter creation"; NewLine.ОписаниеМетода = "Gets the structure of standard fields for counter creation";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "metrika";
NewLine.Модуль = "OPI_YandexMetrika";
NewLine.Метод = "GetCounterFilterStructure";
NewLine.МетодПоиска = "GETCOUNTERFILTERSTRUCTURE";
NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Counters management";
NewLine.ОписаниеМетода = "Gets the structure of filter fields to get the list of counters";
Return CompositionTable; Return CompositionTable;
EndFunction EndFunction
@@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os // OneScript: ./OInt/tools/Modules/internal/Modules/OPI_Инструменты.os
// MIT License // MIT License
@@ -230,6 +230,27 @@
НоваяСтрока.Область = "Управление счетчиками"; НоваяСтрока.Область = "Управление счетчиками";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "metrika";
НоваяСтрока.Модуль = "OPI_YandexMetrika";
НоваяСтрока.Метод = "ПолучитьСписокСчетчиков";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСЧЕТЧИКОВ";
НоваяСтрока.Параметр = "--token";
НоваяСтрока.Описание = "Токен авторизации";
НоваяСтрока.Область = "Управление счетчиками";
НоваяСтрока.ОписаниеМетода = "Получает список доступных счетчиков с фильтром или без";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "metrika";
НоваяСтрока.Модуль = "OPI_YandexMetrika";
НоваяСтрока.Метод = "ПолучитьСписокСчетчиков";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСЧЕТЧИКОВ";
НоваяСтрока.Параметр = "--filter";
НоваяСтрока.Описание = "Фильтр списка. См. ПолучитьСтруктуруФильтраСчетчиков (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Управление счетчиками";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "metrika"; НоваяСтрока.Библиотека = "metrika";
НоваяСтрока.Модуль = "OPI_YandexMetrika"; НоваяСтрока.Модуль = "OPI_YandexMetrika";
@@ -240,6 +261,17 @@
НоваяСтрока.Область = "Управление счетчиками"; НоваяСтрока.Область = "Управление счетчиками";
НоваяСтрока.ОписаниеМетода = "Получает структуру стандартных полей для создания счетчика"; НоваяСтрока.ОписаниеМетода = "Получает структуру стандартных полей для создания счетчика";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "metrika";
НоваяСтрока.Модуль = "OPI_YandexMetrika";
НоваяСтрока.Метод = "ПолучитьСтруктуруФильтраСчетчиков";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУФИЛЬТРАСЧЕТЧИКОВ";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Управление счетчиками";
НоваяСтрока.ОписаниеМетода = "Получает структуру полей фильтра для получения списка счетчиков";
Возврат ТаблицаСостава; Возврат ТаблицаСостава;
КонецФункции КонецФункции