///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// См. ОбработкаМенеджер.ТранспортСообщенийОбменаFILE.ПараметрыТранспорта
Функция ПараметрыТранспорта() Экспорт
	
	Описание = НСтр("ru = 'Для подключения необходимо параметры авторизации на облачном сервисе.'");
	
	Параметры = ТранспортСообщенийОбмена.СтруктураПараметровТранспорта();
	
	Параметры.Псевдоним = НСтр("ru = 'Google Drive'");
	Параметры.ИдентификаторТранспорта = "GoogleDrive";
	Параметры.Описание = Описание;
	Параметры.Картинка = БиблиотекаКартинок.GooggleDrive;
	
	Реквизиты = Новый Массив;
	Реквизиты.Добавить("ПарольАрхиваСообщенияОбмена");
	
	Параметры.РеквизитыДляБезопасногоХранилища = Реквизиты;
	
	Возврат Параметры;
	
КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

Функция НастройкиПодключенияВXML(НастройкиПодключения) Экспорт
	
	Возврат "";
	
КонецФункции

Функция НастройкиПодключенияИзXML(ТекстXML) Экспорт
	
	Настройки = Новый Структура;
	Возврат Настройки;
	
КонецФункции

Функция НастройкиТранспортаВJSON(НастройкиТранспорта) Экспорт
	
	НастройкиТранспортаJSON = Новый Структура;

	ПарольАрхиваСообщенияОбмена = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкиТранспорта.ПарольАрхиваСообщенияОбмена);
	
	НастройкиТранспортаJSON.Вставить("CompressOutgoingMessageFile", НастройкиТранспорта.СжиматьФайлИсходящегоСообщения);
	НастройкиТранспортаJSON.Вставить("ArchivePasswordExchangeMessages", ПарольАрхиваСообщенияОбмена);
	НастройкиТранспортаJSON.Вставить("TransliterateExchangeMessageFileNames", НастройкиТранспорта.Транслитерация);
	
	// Google
	НастройкиТранспортаJSON.Вставить("AccessToken",НастройкиТранспорта.AccessToken);
	НастройкиТранспортаJSON.Вставить("ClientID",НастройкиТранспорта.ClientID);
	НастройкиТранспортаJSON.Вставить("ClientSecret",НастройкиТранспорта.ClientSecret);
	НастройкиТранспортаJSON.Вставить("ExpiresIn",НастройкиТранспорта.ExpiresIn);
	НастройкиТранспортаJSON.Вставить("RefreshToken",НастройкиТранспорта.RefreshToken);
	НастройкиТранспортаJSON.Вставить("CloudDirectory",НастройкиТранспорта.КаталогВОблаке);
	
	Возврат НастройкиТранспортаJSON;
	
КонецФункции

Функция НастройкиТранспортаИзJSON(НастройкиТранспортаJSON) Экспорт
	
	НастройкиТранспорта = Новый Структура;
	
	НастройкиТранспорта.Вставить("СжиматьФайлИсходящегоСообщения", НастройкиТранспортаJSON.CompressOutgoingMessageFile);
	НастройкиТранспорта.Вставить("ПарольАрхиваСообщенияОбмена", НастройкиТранспортаJSON.ArchivePasswordExchangeMessages);
	НастройкиТранспорта.Вставить("Транслитерация", НастройкиТранспортаJSON.TransliterateExchangeMessageFileNames);
	
	// Google
	НастройкиТранспорта.Вставить("AccessToken", НастройкиТранспортаJSON.AccessToken);
	НастройкиТранспорта.Вставить("ClientID", НастройкиТранспортаJSON.ClientID);
	НастройкиТранспорта.Вставить("ClientSecret", НастройкиТранспортаJSON.ClientSecret);
	НастройкиТранспорта.Вставить("ExpiresIn", НастройкиТранспортаJSON.ExpiresIn);
	НастройкиТранспорта.Вставить("RefreshToken", НастройкиТранспортаJSON.RefreshToken);
	НастройкиТранспорта.Вставить("КаталогВОблаке", НастройкиТранспортаJSON.CloudDirectory);
		
	Возврат НастройкиТранспорта;
	
КонецФункции

Функция ИмяКаталогаСохраненияНастроек(НастройкиПодключения) Экспорт
	
	Возврат "";
	
КонецФункции

#КонецОбласти
	
#КонецЕсли