1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-02-03 13:22:19 +02:00

Начало Yandex Metrika

This commit is contained in:
Anton 2024-11-07 12:41:55 +03:00
parent 5859a92348
commit efd154ea27
15 changed files with 6091 additions and 5667 deletions

File diff suppressed because it is too large Load Diff

View File

@ -53,9 +53,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
Возврат Ответ;
@ -73,15 +71,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources";
Href = "href";
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
@ -109,14 +104,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Возврат Ответ;
@ -134,17 +127,15 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(ВКорзину);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path" , Путь);
Параметры.Вставить("permanently", Не ВКорзину);
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("permanently", Не ВКорзину, "Булево", Параметры);
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Возврат Ответ;
@ -163,19 +154,14 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьКопиюОбъекта(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/copy";
Href = "href";
Параметры = Новый Структура;
Параметры.Вставить("from" , Оригинал);
Параметры.Вставить("path" , Путь);
Параметры.Вставить("overwrite" , Перезаписывать);
OPI_Инструменты.ДобавитьПоле("from" , Оригинал , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("overwrite", Перезаписывать, "Булево", Параметры);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
@ -203,13 +189,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСсылкуДляСкачивания(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/download", Параметры, Заголовки);
@ -230,6 +213,7 @@
Функция СкачатьФайл(Знач Токен, Знач Путь, Знач ПутьСохранения = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьСохранения);
Ответ = ПолучитьСсылкуДляСкачивания(Токен, Путь);
URL = Ответ["href"];
@ -264,13 +248,12 @@
, Знач ОтборПоТипу = ""
, Знач СортироватьПоДате = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОтборПоТипу);
OPI_ПреобразованиеТипов.ПолучитьБулево(СортироватьПоДате);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -311,12 +294,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
Href = "href";
@ -352,12 +334,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Файл, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Href = "href";
Файл = Новый Структура("file", Файл);
@ -390,11 +371,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ЗагрузитьФайлПоURL(Знач Токен, Знач Путь, Знач Адрес) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
Параметры = Новый Структура;
@ -454,11 +434,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСписокОпубликованныхОбъектов(Знач Токен, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -489,12 +468,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьПубличныйОбъект(Знач Токен, Знач URL, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -526,11 +504,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Токен, Знач URL, Знач Путь = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -559,12 +536,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СохранитьПубличныйОбъектНаДиск(Знач Токен, Знач URL, Откуда = "", Куда = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Откуда);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Куда);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Адрес = "https://cloud-api.yandex.net/v1/disk/public/resources/save-to-disk";
Href = "href";
@ -600,22 +576,12 @@
#Область СлужебныеПроцедурыИФункции
Функция ЗаголовокАвторизации(Знач Токен)
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "OAuth " + Токен);
Возврат Заголовки;
КонецФункции
Функция ПереключениеОбщегоДоступа(Знач Токен, Знач Путь, Знач ОбщийДоступ)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(ОбщийДоступ);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Назначение = ?(ОбщийДоступ, "publish", "unpublish");
Href = "href";

View File

@ -114,4 +114,15 @@
КонецФункции
Функция ПолучитьЗаголовокАвторизации(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "OAuth " + Токен);
Возврат Заголовки;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,177 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
// Lib: Yandex Metrika
// CLI: metrika
// 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
// Раскомментировать, если выполняется OneScript
#Использовать "../../tools"
#Область ПрограммныйИнтерфейс
#Область УправлениеМетками
// Создать метку
// Создает метку с указанным именем
//
// Примечание:
// Метод в документации API: [Создание метки](@yandex.ru/dev/metrika/ru/management/openapi/label/createLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// Наименование - Строка - Наименование метки - title
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьМетку(Знач Токен, Знач Наименование) Экспорт
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/labels";
Метка = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
Ответ = OPI_Инструменты.Post(URL, Новый Структура("label", Метка), Заголовки);
Возврат Ответ;
КонецФункции
// Изменить метку
// Изменяет имя метки по ID
//
// Примечание:
// Метод в документации API: [Изменение метки](@yandex.ru/dev/metrika/ru/management/openapi/label/updateLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки для изменения - label
// Наименование - Строка - Новое наименование - title
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ИзменитьМетку(Знач Токен, Знач IDМетки, Знач Наименование) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Метка = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
Ответ = OPI_Инструменты.Put(URL, Новый Структура("label", Метка), Заголовки);
Возврат Ответ;
КонецФункции
// Получить метку
// Получает метку по ID
//
// Примечание:
// Метод в документации API: [Информация о метке](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки - label
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьМетку(Знач Токен, Знач IDМетки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Удалить метку
// Удаляет метку по ID
//
// Примечание:
// Метод в документации API: [Удаление метки](@yandex.ru/dev/metrika/ru/management/openapi/label/deleteLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки для удаления - label
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция УдалитьМетку(Знач Токен, Знач IDМетки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить список меток
// Получает список меток пользователя
//
// Примечание:
// Метод в документации API: [Список меток пользователя](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabels)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСписокМеток(Знач Токен) Экспорт
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/labels";
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

View File

@ -19,6 +19,7 @@
<module name="OPI_YandexDisk" file="core/Modules/OPI_YandexDisk.os"/>
<module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/>
<module name="OPI_YandexMarket" file="core/Modules/OPI_YandexMarket.os"/>
<module name="OPI_YandexMetrika" file="core/Modules/OPI_YandexMetrika.os"/>
<module name="OPI_Инструменты" file="tools/Modules/internal/Modules/OPI_Инструменты.os"/>
<module name="OPI_Криптография" file="tools/Modules/internal/Modules/OPI_Криптография.os"/>
<module name="OPI_ПолучениеДанныхТестов" file="tools/Modules/OPI_ПолучениеДанныхТестов.os"/>

View File

@ -2101,6 +2101,23 @@
#КонецОбласти
#Область YandexMetrika
Процедура ЯМетрика_УправлениеМетками() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
YandexMetrika_СоздатьМетку(ПараметрыТеста);
YandexMetrika_ПолучитьСписокМеток(ПараметрыТеста);
YandexMetrika_ИзменитьМетку(ПараметрыТеста);
YandexMetrika_ПолучитьМетку(ПараметрыТеста);
YandexMetrika_УдалитьМетку(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
@ -14504,6 +14521,85 @@
#КонецОбласти
#Область YandexMarket
Процедура YandexMetrika_ПолучитьСписокМеток(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
Результат = OPI_YandexMetrika.ПолучитьСписокМеток(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМеток", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетки(Результат);
КонецПроцедуры
Процедура YandexMetrika_СоздатьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
Наименование = "Новая метка";
Результат = OPI_YandexMetrika.СоздатьМетку(Токен, Наименование);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
IDМетки = Результат["label"]["id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Metrika_LabelID", IDМетки);
OPI_Инструменты.ДобавитьПоле("Metrika_LabelID", IDМетки, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура YandexMetrika_УдалитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Результат = OPI_YandexMetrika.УдалитьМетку(Токен, IDМетки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура YandexMetrika_ИзменитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Наименование = "Новое имя метки";
Результат = OPI_YandexMetrika.ИзменитьМетку(Токен, IDМетки, Наименование);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
КонецПроцедуры
Процедура YandexMetrika_ПолучитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Результат = OPI_YandexMetrika.ПолучитьМетку(Токен, IDМетки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@ -67,6 +67,7 @@
Разделы.Вставить("Neocities" , 5);
Разделы.Вставить("CDEK" , 5);
Разделы.Вставить("YandexMarket" , 5);
Разделы.Вставить("YandexMetrika" , 5);
Возврат Разделы;
@ -97,6 +98,7 @@
Разделы.Вставить("Neocities" , СтандартныеЗависимости);
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
Разделы.Вставить("YandexMarket" , СтандартныеЗависимости);
Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
Возврат Разделы;
@ -123,6 +125,7 @@
Неоситиз = "Neocities";
Сдэк = "CDEK";
ЯМаркет = "YandexMarket";
Метрика = "YandexMetrika";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
@ -251,6 +254,7 @@
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
НовыйТест(ТаблицаТестов, "ЯМаркет_КабинетыИМагазины" , "Кабинеты и магазины" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМаркет_РаботаСТоварами" , "Работа с товарами" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеМетками" , "Управление метками" , Метрика);
Возврат ТаблицаТестов;
@ -1939,6 +1943,25 @@
КонецПроцедуры
Процедура Проверка_МетрикаМетки(Знач Результат) Экспорт
ОжидаетЧто(Результат["labels"]).ИмеетТип("Массив");
КонецПроцедуры
Процедура Проверка_МетрикаМетка(Знач Результат, Знач Наименование = "") Экспорт
ОжидаетЧто(Результат["label"]).ИмеетТип("Соответствие");
ОжидаетЧто(Результат["label"]["id"]).Заполнено();
Если ЗначениеЗаполнено(Наименование) Тогда
ОжидаетЧто(Результат["label"]["name"]).Равно(Наименование);
КонецЕсли;
КонецПроцедуры
Процедура Проверка_МетрикаУспех(Знач Результат) Экспорт
ОжидаетЧто(Результат["success"]).Равно(Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -53,9 +53,7 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьИнформациюОДиске(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk", , Заголовки);
Возврат Ответ;
@ -73,15 +71,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources";
Href = "href";
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Put(URL + Параметры, , Заголовки, Ложь);
@ -109,14 +104,12 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьОбъект(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Возврат Ответ;
@ -134,17 +127,15 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция УдалитьОбъект(Знач Токен, Знач Путь, Знач ВКорзину = Истина) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(ВКорзину);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path" , Путь);
Параметры.Вставить("permanently", Не ВКорзину);
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("permanently", Не ВКорзину, "Булево", Параметры);
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Ответ = OPI_Инструменты.Delete("https://cloud-api.yandex.net/v1/disk/resources", Параметры, Заголовки);
Возврат Ответ;
@ -163,19 +154,14 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьКопиюОбъекта(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/copy";
Href = "href";
Параметры = Новый Структура;
Параметры.Вставить("from" , Оригинал);
Параметры.Вставить("path" , Путь);
Параметры.Вставить("overwrite" , Перезаписывать);
OPI_Инструменты.ДобавитьПоле("from" , Оригинал , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("path" , Путь , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("overwrite", Перезаписывать, "Булево", Параметры);
Параметры = OPI_Инструменты.ПараметрыЗапросаВСтроку(Параметры);
Ответ = OPI_Инструменты.Post(URL + Параметры, , Заголовки, Ложь);
@ -203,13 +189,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСсылкуДляСкачивания(Знач Токен, Знач Путь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
Параметры.Вставить("path", Путь);
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Ответ = OPI_Инструменты.Get("https://cloud-api.yandex.net/v1/disk/resources/download", Параметры, Заголовки);
@ -230,6 +213,7 @@
Функция СкачатьФайл(Знач Токен, Знач Путь, Знач ПутьСохранения = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ПутьСохранения);
Ответ = ПолучитьСсылкуДляСкачивания(Токен, Путь);
URL = Ответ["href"];
@ -264,13 +248,12 @@
, Знач ОтборПоТипу = ""
, Знач СортироватьПоДате = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ОтборПоТипу);
OPI_ПреобразованиеТипов.ПолучитьБулево(СортироватьПоДате);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -311,12 +294,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПереместитьОбъект(Знач Токен, Знач Оригинал, Знач Путь, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Оригинал);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/move";
Href = "href";
@ -352,12 +334,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ЗагрузитьФайл(Знач Токен, Знач Путь, Знач Файл, Знач Перезаписывать = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(Перезаписывать);
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Файл);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Href = "href";
Файл = Новый Структура("file", Файл);
@ -390,11 +371,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ЗагрузитьФайлПоURL(Знач Токен, Знач Путь, Знач Адрес) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Адрес);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://cloud-api.yandex.net/v1/disk/resources/upload";
Параметры = Новый Структура;
@ -454,11 +434,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСписокОпубликованныхОбъектов(Знач Токен, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -489,12 +468,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьПубличныйОбъект(Знач Токен, Знач URL, Знач Количество = 0, Знач СмещениеОтНачала = 0) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Количество);
OPI_ПреобразованиеТипов.ПолучитьСтроку(СмещениеОтНачала);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -526,11 +504,10 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСсылкуСкачиванияПубличногоОбъекта(Знач Токен, Знач URL, Знач Путь = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Параметры = Новый Структура;
@ -559,12 +536,11 @@
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СохранитьПубличныйОбъектНаДиск(Знач Токен, Знач URL, Откуда = "", Куда = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(URL);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Откуда);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Куда);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Адрес = "https://cloud-api.yandex.net/v1/disk/public/resources/save-to-disk";
Href = "href";
@ -600,22 +576,12 @@
#Область СлужебныеПроцедурыИФункции
Функция ЗаголовокАвторизации(Знач Токен)
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "OAuth " + Токен);
Возврат Заголовки;
КонецФункции
Функция ПереключениеОбщегоДоступа(Знач Токен, Знач Путь, Знач ОбщийДоступ)
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
OPI_ПреобразованиеТипов.ПолучитьСтроку(Путь);
OPI_ПреобразованиеТипов.ПолучитьБулево(ОбщийДоступ);
Заголовки = ЗаголовокАвторизации(Токен);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
Назначение = ?(ОбщийДоступ, "publish", "unpublish");
Href = "href";

View File

@ -114,4 +114,15 @@
КонецФункции
Функция ПолучитьЗаголовокАвторизации(Знач Токен) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "OAuth " + Токен);
Возврат Заголовки;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,177 @@
// OneScript: ./OInt/core/Modules/OPI_YandexMetrika.os
// Lib: Yandex Metrika
// CLI: metrika
// 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
// Раскомментировать, если выполняется OneScript
// #Использовать "../../tools"
#Область ПрограммныйИнтерфейс
#Область УправлениеМетками
// Создать метку
// Создает метку с указанным именем
//
// Примечание:
// Метод в документации API: [Создание метки](@yandex.ru/dev/metrika/ru/management/openapi/label/createLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// Наименование - Строка - Наименование метки - title
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция СоздатьМетку(Знач Токен, Знач Наименование) Экспорт
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/labels";
Метка = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
Ответ = OPI_Инструменты.Post(URL, Новый Структура("label", Метка), Заголовки);
Возврат Ответ;
КонецФункции
// Изменить метку
// Изменяет имя метки по ID
//
// Примечание:
// Метод в документации API: [Изменение метки](@yandex.ru/dev/metrika/ru/management/openapi/label/updateLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки для изменения - label
// Наименование - Строка - Новое наименование - title
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ИзменитьМетку(Знач Токен, Знач IDМетки, Знач Наименование) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Метка = Новый Структура;
OPI_Инструменты.ДобавитьПоле("name", Наименование, "Строка", Метка);
Ответ = OPI_Инструменты.Put(URL, Новый Структура("label", Метка), Заголовки);
Возврат Ответ;
КонецФункции
// Получить метку
// Получает метку по ID
//
// Примечание:
// Метод в документации API: [Информация о метке](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки - label
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьМетку(Знач Токен, Знач IDМетки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Удалить метку
// Удаляет метку по ID
//
// Примечание:
// Метод в документации API: [Удаление метки](@yandex.ru/dev/metrika/ru/management/openapi/label/deleteLabel)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
// IDМетки - Строка - ID метки для удаления - label
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция УдалитьМетку(Знач Токен, Знач IDМетки) Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(IDМетки);
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/label/" + IDМетки;
Ответ = OPI_Инструменты.Delete(URL, , Заголовки);
Возврат Ответ;
КонецФункции
// Получить список меток
// Получает список меток пользователя
//
// Примечание:
// Метод в документации API: [Список меток пользователя](@yandex.ru/dev/metrika/ru/management/openapi/label/getLabels)
//
// Параметры:
// Токен - Строка - Токен авторизации - token
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Yandex
Функция ПолучитьСписокМеток(Знач Токен) Экспорт
Заголовки = OPI_YandexID.ПолучитьЗаголовокАвторизации(Токен);
URL = "https://api-metrika.yandex.net/management/v1/labels";
Ответ = OPI_Инструменты.Get(URL, , Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
#КонецОбласти

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="6a6134d2-7e5b-4fae-9656-7e67388bf27a">
<name>OPI_YandexMetrika</name>
<synonym>
<key>ru</key>
<value>Yandex Metrika (ОПИ)</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -66,7 +66,7 @@
Разделы.Вставить("Ozon" , 5);
Разделы.Вставить("Neocities" , 5);
Разделы.Вставить("CDEK" , 5);
Разделы.Вставить("YandexMarket" , 5);
Разделы.Вставить("YandexMetrika" , 5);
Возврат Разделы;
@ -96,7 +96,7 @@
Разделы.Вставить("Ozon" , СтандартныеЗависимости);
Разделы.Вставить("Neocities" , СтандартныеЗависимости);
Разделы.Вставить("CDEK" , СтандартныеЗависимости);
Разделы.Вставить("YandexMarket" , СтандартныеЗависимости);
Разделы.Вставить("YandexMetrika" , СтандартныеЗависимости);
Возврат Разделы;
@ -122,7 +122,7 @@
Озон = "Ozon";
Неоситиз = "Neocities";
Сдэк = "CDEK";
ЯМаркет = "YandexMarket";
Метрика = "YandexMetrika";
ТаблицаТестов = Новый ТаблицаЗначений;
ТаблицаТестов.Колонки.Добавить("Метод");
@ -249,8 +249,7 @@
НовыйТест(ТаблицаТестов, "СдэкАПИ_ОбщиеМетоды" , "Общие методы" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаказами" , "Работа с заказами" , Сдэк);
НовыйТест(ТаблицаТестов, "СдэкАПИ_РаботаСЗаявкамиНаВызовКурьера", "Работа с заявками курьера" , Сдэк);
НовыйТест(ТаблицаТестов, "ЯМаркет_КабинетыИМагазины" , "Кабинеты и магазины" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМаркет_РаботаСТоварами" , "Работа с товарами" , ЯМаркет);
НовыйТест(ТаблицаТестов, "ЯМетрика_УправлениеМетками" , "Управление метками" , Метрика);
Возврат ТаблицаТестов;
@ -1939,6 +1938,25 @@
КонецПроцедуры
Процедура Проверка_МетрикаМетки(Знач Результат) Экспорт
ОжидаетЧто(Результат["labels"]).ИмеетТип("Массив");
КонецПроцедуры
Процедура Проверка_МетрикаМетка(Знач Результат, Знач Наименование = "") Экспорт
ОжидаетЧто(Результат["label"]).ИмеетТип("Соответствие");
ОжидаетЧто(Результат["label"]["id"]).Заполнено();
Если ЗначениеЗаполнено(Наименование) Тогда
ОжидаетЧто(Результат["label"]["name"]).Равно(Наименование);
КонецЕсли;
КонецПроцедуры
Процедура Проверка_МетрикаУспех(Знач Результат) Экспорт
ОжидаетЧто(Результат["success"]).Равно(Истина);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -2068,35 +2068,19 @@
#КонецОбласти
#Область YandexMarket
#Область YandexMetrika
Процедура ЯМаркет_КабинетыИМагазины() Экспорт
Процедура ЯМетрика_УправлениеМетками() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
YandexMarket_ПолучитьМагазин(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
КонецПроцедуры
Процедура ЯМаркет_РаботаСТоварами() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Video" , ПараметрыТеста);
YandexMarket_ДобавитьОбновитьТовары(ПараметрыТеста);
YandexMarket_ПолучитьТоварыМагазина(ПараметрыТеста);
YandexMarket_ПолучитьТоварыКабинета(ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
YandexMetrika_СоздатьМетку(ПараметрыТеста);
YandexMetrika_ПолучитьСписокМеток(ПараметрыТеста);
YandexMetrika_ИзменитьМетку(ПараметрыТеста);
YandexMetrika_ПолучитьМетку(ПараметрыТеста);
YandexMetrika_УдалитьМетку(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -14342,164 +14326,81 @@
#КонецОбласти
#Область YandexMarket
#Область YandexMetrika
Процедура YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Процедура YandexMetrika_ПолучитьСписокМеток(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
Токен = ПараметрыФункции["Metrika_Token"];
Результат = OPI_YandexMetrika.ПолучитьСписокМеток(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМеток", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетки(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьМагазин(ПараметрыФункции)
Процедура YandexMetrika_СоздатьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьМагазин(Токен, IDМагазина);
Токен = ПараметрыФункции["Metrika_Token"];
Наименование = "Новая метка";
Результат = OPI_YandexMetrika.СоздатьМетку(Токен, Наименование);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
IDМетки = Результат["label"]["id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Metrika_LabelID", IDМетки);
OPI_Инструменты.ДобавитьПоле("Metrika_LabelID", IDМетки, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура YandexMarket_ПолучитьНастройкиКабинета(ПараметрыФункции)
Процедура YandexMetrika_УдалитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьНастройкиКабинета(Токен, IDКабинета);
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Результат = OPI_YandexMetrika.УдалитьМетку(Токен, IDМетки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Процедура YandexMetrika_ИзменитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Наименование = "Новое имя метки";
Результат = OPI_YandexMetrika.ИзменитьМетку(Токен, IDМетки, Наименование);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
КонецПроцедуры
Процедура YandexMarket_ДобавитьОбновитьТовары(ПараметрыФункции)
Процедура YandexMetrika_ПолучитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Картинка = ПараметрыФункции["Picture"];
Видео = ПараметрыФункции["Video"];
СтруктураОбновления = Новый Структура;
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offerId" , "11111");
СтруктураТовара.Вставить("name" , "Ударная дрель Makita HP1630, 710 Вт");
СтруктураТовара.Вставить("marketCategoryId", 15221861);
СтруктураТовара.Вставить("category" , "Дрель");
МассивКартинок = Новый Массив;
МассивКартинок.Добавить(Картинка);
СтруктураТовара.Вставить("pictures", МассивКартинок);
МассивВидео = Новый Массив;
МассивВидео.Добавить(Видео);
СтруктураТовара.Вставить("videos", МассивВидео);
СтруктураТовара.Вставить("vendor", "LEVENHUK");
МассивШтрихкодов = Новый Массив;
МассивШтрихкодов.Добавить("46012300000000");
СтруктураТовара.Вставить("barcodes" , МассивШтрихкодов);
СтруктураТовара.Вставить("description", "Описание");
МассивСтран = Новый Массив;
МассивСтран.Добавить("Россия");
СтруктураТовара.Вставить("manufacturerCountries", МассивСтран);
СтруктураРазмеров = Новый Структура;
СтруктураРазмеров.Вставить("length", 65.55);
СтруктураРазмеров.Вставить("width" , 50.7);
СтруктураРазмеров.Вставить("height", 20);
СтруктураРазмеров.Вставить("weight", 1.001);
СтруктураТовара.Вставить("weightDimensions", СтруктураРазмеров);
СтруктураТовара.Вставить("vendorCode" , "VNDR-0005A");
МассивТэгов = Новый Массив;
МассивТэгов.Добавить("до 500 рублей");
СтруктураТовара.Вставить("tags", МассивТэгов);
СтруктураПериода = Новый Структура;
СтруктураПериода.Вставить("timePeriod", 24);
СтруктураПериода.Вставить("timeUnit" , "HOUR");
СтруктураПериода.Вставить("comment" , "Комментарий");
СтруктураТовара.Вставить("shelfLife" , СтруктураПериода);
СтруктураТовара.Вставить("lifeTime" , СтруктураПериода);
СтруктураТовара.Вставить("guaranteePeriod" , СтруктураПериода);
СтруктураТовара.Вставить("customsCommodityCode", 8517610008);
СтруктураТовара.Вставить("type" , "DEFAULT");
СтруктураТовара.Вставить("downloadable" , Ложь);
СтруктураТовара.Вставить("adult" , Ложь);
СтруктураОбновления.Вставить("offer", СтруктураТовара);
Результат = OPI_YandexMarket.ДобавитьОбновитьТовары(Токен, IDКабинета, СтруктураОбновления);
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Результат = OPI_YandexMetrika.ПолучитьМетку(Токен, IDМетки);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьОбновитьТовары", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетОк(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьТоварыМагазина(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьТоварыМагазина(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
КонецПроцедуры
Процедура YandexMarket_ПолучитьТоварыКабинета(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьТоварыКабинета(Токен, IDКабинета);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТоварыКабинета", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат);
КонецПроцедуры
#КонецОбласти

View File

@ -2064,20 +2064,19 @@
#КонецОбласти
#Область YandexMarket
#Область YandexMetrika
Процедура CLI_ЯМаркет_КабинетыИМагазины() Экспорт
Процедура CLI_ЯМетрика_УправлениеМетками() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Token" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Campaign", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("YMarket_Business", ПараметрыТеста);
CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыТеста);
CLI_YandexMarket_ПолучитьМагазин(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыТеста);
CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Metrika_Token", ПараметрыТеста);
CLI_YandexMetrika_СоздатьМетку(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьСписокМеток(ПараметрыТеста);
CLI_YandexMetrika_ИзменитьМетку(ПараметрыТеста);
CLI_YandexMetrika_ПолучитьМетку(ПараметрыТеста);
CLI_YandexMetrika_УдалитьМетку(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -16298,61 +16297,91 @@
#КонецОбласти
#Область YandexMarket
#Область YandexMetrika
Процедура CLI_YandexMarket_ПолучитьСписокМагазинов(ПараметрыФункции)
Процедура CLI_YandexMetrika_ПолучитьСписокМеток(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
Результат = OPI_YandexMarket.ПолучитьСписокМагазинов(Токен);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМагазинов", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетМагазины(Результат);
Токен = ПараметрыФункции["Metrika_Token"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокМеток", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокМеток", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетки(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьМагазин(ПараметрыФункции)
Процедура CLI_YandexMetrika_СоздатьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Результат = OPI_YandexMarket.ПолучитьМагазин(Токен, IDМагазина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
Токен = ПараметрыФункции["Metrika_Token"];
Наименование = "Новая метка";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("title", Наименование);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "СоздатьМетку", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
IDМетки = Результат["label"]["id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Metrika_LabelID", IDМетки);
OPI_Инструменты.ДобавитьПоле("Metrika_LabelID", IDМетки, "Строка", ПараметрыФункции);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиКабинета(ПараметрыФункции)
Процедура CLI_YandexMetrika_УдалитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDКабинета = ПараметрыФункции["YMarket_Business"];
Результат = OPI_YandexMarket.ПолучитьНастройкиКабинета(Токен, IDКабинета);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМагазин", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_ЯМаркетКабинет(Результат);
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("label", IDМетки);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "УдалитьМетку", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаУспех(Результат);
КонецПроцедуры
Процедура CLI_YandexMarket_ПолучитьНастройкиМагазина(ПараметрыФункции)
Процедура CLI_YandexMetrika_ИзменитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["YMarket_Token"];
IDМагазина = ПараметрыФункции["YMarket_Campaign"];
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Наименование = "Новое имя метки";
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("label", IDМетки);
Опции.Вставить("title", Наименование);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ИзменитьМетку", Опции);
Результат = OPI_YandexMarket.ПолучитьНастройкиМагазина(Токен, IDМагазина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат, Наименование);
// END
КонецПроцедуры
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьНастройкиМагазина", "YandexMarket");
OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат);
Процедура CLI_YandexMetrika_ПолучитьМетку(ПараметрыФункции)
Токен = ПараметрыФункции["Metrika_Token"];
IDМетки = ПараметрыФункции["Metrika_LabelID"];
Опции = Новый Структура;
Опции.Вставить("token", Токен);
Опции.Вставить("label", IDМетки);
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьМетку", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьМетку", "YandexMetrika");
OPI_ПолучениеДанныхТестов.Проверка_МетрикаМетка(Результат);
КонецПроцедуры
#КонецОбласти

View File

@ -43,26 +43,27 @@
<commonModules>CommonModule.OPI_Инструменты</commonModules>
<commonModules>CommonModule.OPI_Криптография</commonModules>
<commonModules>CommonModule.OPI_ПреобразованиеТипов</commonModules>
<commonModules>CommonModule.OPI_Telegram</commonModules>
<commonModules>CommonModule.OPI_VK</commonModules>
<commonModules>CommonModule.OPI_Viber</commonModules>
<commonModules>CommonModule.OPI_Twitter</commonModules>
<commonModules>CommonModule.OPI_Notion</commonModules>
<commonModules>CommonModule.OPI_YandexID</commonModules>
<commonModules>CommonModule.OPI_YandexDisk</commonModules>
<commonModules>CommonModule.OPI_GoogleWorkspace</commonModules>
<commonModules>CommonModule.OPI_Airtable</commonModules>
<commonModules>CommonModule.OPI_Bitrix24</commonModules>
<commonModules>CommonModule.OPI_CDEK</commonModules>
<commonModules>CommonModule.OPI_Dropbox</commonModules>
<commonModules>CommonModule.OPI_GoogleCalendar</commonModules>
<commonModules>CommonModule.OPI_GoogleDrive</commonModules>
<commonModules>CommonModule.OPI_GoogleSheets</commonModules>
<commonModules>CommonModule.OPI_Slack</commonModules>
<commonModules>CommonModule.OPI_Airtable</commonModules>
<commonModules>CommonModule.OPI_Dropbox</commonModules>
<commonModules>CommonModule.OPI_Bitrix24</commonModules>
<commonModules>CommonModule.OPI_VKTeams</commonModules>
<commonModules>CommonModule.OPI_Ozon</commonModules>
<commonModules>CommonModule.OPI_GoogleWorkspace</commonModules>
<commonModules>CommonModule.OPI_Neocities</commonModules>
<commonModules>CommonModule.OPI_CDEK</commonModules>
<commonModules>CommonModule.OPI_Ozon</commonModules>
<commonModules>CommonModule.OPI_Notion</commonModules>
<commonModules>CommonModule.OPI_Slack</commonModules>
<commonModules>CommonModule.OPI_Telegram</commonModules>
<commonModules>CommonModule.OPI_Twitter</commonModules>
<commonModules>CommonModule.OPI_Viber</commonModules>
<commonModules>CommonModule.OPI_VK</commonModules>
<commonModules>CommonModule.OPI_VKTeams</commonModules>
<commonModules>CommonModule.OPI_YandexDisk</commonModules>
<commonModules>CommonModule.OPI_YandexID</commonModules>
<commonModules>CommonModule.OPI_YandexMarket</commonModules>
<commonModules>CommonModule.OPI_YandexMetrika</commonModules>
<commonModules>CommonModule.OPI_Тесты</commonModules>
<commonModules>CommonModule.OPI_ТестыCLI</commonModules>
<commonModules>CommonModule.OPI_ПолучениеДанныхТестов</commonModules>