1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-25 02:42:28 +02:00

Google Calendar: правка по часовым поясам

This commit is contained in:
Anton 2024-02-25 00:10:49 +03:00
parent c7d783f64f
commit 9e222b7783
2 changed files with 60 additions and 8 deletions

View File

@ -31,6 +31,7 @@
// Параметры:
// Токен - Строка - Токен
// Наименование - Строка - Наименование создаваемого календаря
// ЧасовойПояс - Строка - Часовой пояс в формате IANA
//
// Возвращаемое значение:
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
@ -40,7 +41,8 @@
URL = "https://www.googleapis.com/calendar/v3/calendars";
Параметры = Новый Структура;
Параметры.Вставить("summary", Наименование);
Параметры.Вставить("summary" , Наименование);
Параметры.Вставить("timeZone", ЧасовойПояс());
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
@ -73,10 +75,14 @@
// Календарь - Строка - ID календаря
// Наименование - Строка - Новое наименование
// Описание - Строка - Новое описание календаря
// ЧасовойПояс - Строка - Часовой пояс в формате IANA
//
// Возвращаемое значение:
// Строка, Произвольный, ДвоичныеДанные, Неопределено, HTTPОтвет - ответ сервера Google
Функция ИзменитьМетаданныеКалендаря(Знач Токен, Знач Календарь, Знач Наименование = "", Знач Описание = "") Экспорт
Функция ИзменитьМетаданныеКалендаря(Знач Токен
, Знач Календарь
, Знач Наименование = ""
, Знач Описание = "") Экспорт
Заголовки = ПолучитьЗаголовокАвторизации(Токен);
URL = "https://www.googleapis.com/calendar/v3/calendars/" + Календарь;
@ -91,7 +97,7 @@
Параметры.Вставить("description", Описание);
КонецЕсли;
Ответ = OPI_Инструменты.Put(URL, Параметры, Заголовки);
Ответ = OPI_Инструменты.Patch(URL, Параметры, Заголовки, Истина);
Возврат Ответ;
@ -405,6 +411,10 @@
СтруктураДаты = Новый Структура;
Если Не ТипЗнч(Дата) = Тип("Дата") Тогда
Возврат Неопределено;
КонецЕсли;
Если Дата = НачалоДня(Дата) Тогда
ФорматДаты = "ДФ=yyyy-MM-dd";
Поле = "date";
@ -414,7 +424,8 @@
КонецЕсли;
Дата = Формат(Дата, ФорматДаты);
СтруктураДаты.Вставить(Поле, Дата);
СтруктураДаты.Вставить(Поле , Дата);
СтруктураДаты.Вставить("timeZone", ЧасовойПояс());
Возврат СтруктураДаты;
@ -438,7 +449,11 @@
КонецЕсли;
Возврат МассивВложений;
Если МассивВложений.Количество() > 0 Тогда
Возврат МассивВложений;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
@ -455,7 +470,7 @@
Дата1 = ОписаниеСобытия["ДатаОкончания"];
Вложения = ОписаниеСобытия["МассивURLФайловВложений"];
Вложения = ПреобразоватьВложения(Вложения);
Уведомления = ОписаниеСобытия["ОтправлятьУведомления"];
Уведомления = ?(ОписаниеСобытия["ОтправлятьУведомления"] = Неопределено, Ложь, ОписаниеСобытия["ОтправлятьУведомления"]);
Параметры = Новый Структура;
Параметры.Вставить("summary" , ОписаниеСобытия["Заголовок"]);
@ -467,10 +482,12 @@
ПараметрыURL = Новый Структура;
ПараметрыURL.Вставить("sendUpdates" , ?(Уведомления, "all", "none"));
ПараметрыURL.Вставить("supportsAttachments" , ?(Вложения.Количество() > 0, "true", "false"));
ПараметрыURL.Вставить("supportsAttachments" , ?(ЗначениеЗаполнено(Вложения), "true", "false"));
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
OPI_Инструменты.УдалитьПустыеПоляКоллекции(Параметры);
Если Существующее Тогда
Ответ = OPI_Инструменты.Patch(URL, Параметры, Заголовки, Истина);
Иначе

View File

@ -119,6 +119,41 @@
КонецПроцедуры
Процедура УдалитьПустыеПоляКоллекции(Коллекция) Экспорт
ТипКоллекции = ТипЗнч(Коллекция);
ВыходнаяКоллекция = Новый(ТипКоллекции);
Если ТипКоллекции = Тип("Соответствие") Или ТипКоллекции = Тип("Структура") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Если Не ЭлементКоллекции.Значение = Неопределено И Не ЭлементКоллекции.Значение = NULL Тогда
ВыходнаяКоллекция.Вставить(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипКоллекции = Тип("Массив") Тогда
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Если Не ЭлементКоллекции = Неопределено И Не ЭлементКоллекции = NULL Тогда
ВыходнаяКоллекция.Добавить(ЭлементКоллекции);
КонецЕсли;
КонецЦикла;
Иначе
ВыходнаяКоллекция = Коллекция;
КонецЕсли;
Коллекция = ВыходнаяКоллекция;
КонецПроцедуры
#КонецОбласти
#Область Служебные