From 417379d5ca6c3706cc6e32db45108dd25230c390 Mon Sep 17 00:00:00 2001 From: Anton Date: Mon, 22 Jan 2024 20:18:09 +0300 Subject: [PATCH] =?UTF-8?q?Notion=20API:=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B2=D0=BE=D0=B9=D1=81=D1=82?= =?UTF-8?q?=D0=B2=20=D0=B1=D0=B0=D0=B7=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OPI/src/CommonModules/OPI_Notion/Module.bsl | 67 ++++++++++++++++++++- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/OPI/src/CommonModules/OPI_Notion/Module.bsl b/OPI/src/CommonModules/OPI_Notion/Module.bsl index 4aa44a512..503f807ee 100644 --- a/OPI/src/CommonModules/OPI_Notion/Module.bsl +++ b/OPI/src/CommonModules/OPI_Notion/Module.bsl @@ -57,7 +57,7 @@ // Параметры: // Токен - Строка - Токен // Родитель - Строка - ID родительской базы -// Свойства - Соответствие - Соответствие свойств. Должен соответствовать шаблону свойств базы +// Данные - Соответствие Из КлючИЗначение - Соответствие свойств. Должен соответствовать шаблону свойств базы // // Возвращаемое значение: // Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - Создать страницу в базу @@ -96,7 +96,25 @@ КонецФункции -Функция ИзменитьСвойстваСтраницы(Знач Токен, Знач Страница, Знач Данные = "", Знач Иконка = "", Знач Обложка = "", Знач Архивирована = Ложь) Экспорт +// Изменить свойства страницы. +// +// Параметры: +// Токен - Строка - Токен +// Страница - Строка - ID изменяемой страницы +// Данные - Соответствие Из КлючИЗначение - Соответствие изменяемых параметров +// Иконка - Строка - URL картинки - иконки страницы +// Обложка - Строка - URL картинки - обложки страницы +// Архивирована - Булево - Истина - Архивировать страницу +// +// Возвращаемое значение: +// Строка, Произвольный, Неопределено, HTTPОтвет, ДвоичныеДанные - Изменить свойства страницы +//@skip-check method-too-many-params +Функция ИзменитьСвойстваСтраницы(Знач Токен + , Знач Страница + , Знач Данные = "" + , Знач Иконка = "" + , Знач Обложка = "" + , Знач Архивирована = Ложь) Экспорт Заголовки = СоздатьЗаголовкиЗапроса(Токен); Параметры = Новый Структура; @@ -194,7 +212,7 @@ // База - Строка - ID базы данных // // Возвращаемое значение: -// Строка, Произвольный, ДвоичныеДанные, Неопределено - Получить базу данных +// Строка, Произвольный, ДвоичныеДанные, Неопределено - Ответ сервера Notion Функция ПолучитьБазуДанных(Знач Токен, Знач База) Экспорт Заголовки = СоздатьЗаголовкиЗапроса(Токен); @@ -206,6 +224,42 @@ КонецФункции +// Изменить свойства базы. +// +// Параметры: +// Токен - Строка - Токен +// База - Строка - ID целевой базы +// Свойства - Соответствие из КлючИЗначение - Соответствие, как при создании новой базы. Если значение - пусто, +// то свойство будет удалено +// Заголовок - Строка - Заголовок базы +// Описание - Строка - Описание базы +// +// Возвращаемое значение: +// Строка, Произвольный, Неопределено, HTTPОтвет, ДвоичныеДанные - Ответ сервера Notion +Функция ИзменитьСвойстваБазы(Знач Токен, Знач База, Знач Свойства = "", Знач Заголовок = "", Знач Описание = "") Экспорт + + Параметры = Новый Структура; + Заголовки = СоздатьЗаголовкиЗапроса(Токен); + ПреобразоватьИД(База); + + Если ЗначениеЗаполнено(Заголовок) Тогда + ДобавитьЗаголовокБазы(Заголовок, Параметры); + КонецЕсли; + + Если ЗначениеЗаполнено(Описание) Тогда + ДобавитьОписаниеБазы(Описание, Параметры); + КонецЕсли; + + Если ТипЗнч(Свойства) = Тип("Структура") Или ТипЗнч(Свойства) = Тип("Соответствие") Тогда + ДобавитьСвойстваБазы(Свойства, Параметры); + КонецЕсли; + + Ответ = OPI_Инструменты.Patch("https://api.notion.com/v1/databases"+ База, Параметры, Заголовки); + + Возврат Ответ; + +КонецФункции + #КонецОбласти #КонецОбласти @@ -293,6 +347,13 @@ КонецПроцедуры +Процедура ДобавитьОписаниеБазы(Знач Описание, ОсновнаяСтруктура) + + Заголовок = ПреобразоватьЗаголовок(Описание); + ОсновнаяСтруктура.Вставить("description", Заголовок["title"]); + +КонецПроцедуры + Процедура ДобавитьСвойстваБазы(Знач Свойства, ОсновнаяСтруктура) Если Свойства.Количество() = 0 Тогда