Skip to content

Commit

Permalink
#216 Заголовки для push
Browse files Browse the repository at this point in the history
  • Loading branch information
dmpas committed Jun 10, 2024
1 parent 977aa14 commit d09eb99
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 36 deletions.
18 changes: 16 additions & 2 deletions src/cmd/Классы/КомандаOpm_Push.os
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,17 @@
// Для настроек по умолчанию
Сервер = КонстантыOpm.СерверУдаленногоХранилища;
Ресурс = КонстантыOpm.РесурсПубликацииПакетов;
Авторизация = Неопределено;
ДополнительныеЗаголовки = Неопределено;
Таймаут = 60;

Для Каждого НастройкаСервера Из ДоступныеСервераПакетов Цикл

Если СтрСравнить(НастройкаСервера.Имя, ИмяСервераПакетов) = 0 Тогда
Сервер = НастройкаСервера.Сервер;
Ресурс = НастройкаСервера.РесурсПубликацииПакетов;
Авторизация = НастройкаСервера.Авторизация;
ДополнительныеЗаголовки = НастройкаСервера.ДополнительныеЗаголовки;
Прервать;
КонецЕсли;

Expand All @@ -160,11 +165,20 @@
Лог.Отладка("Ресурс = %1", Ресурс);

Заголовки = Новый Соответствие();
Заголовки.Вставить("OAUTH-TOKEN", ТокенАвторизации);
Если ЗначениеЗаполнено(Авторизация) Тогда
Заголовки.Вставить("Authorization", ОбщегоНазначенияOpm.ПрименитьПеременныеСреды(Авторизация));
Иначе
Заголовки.Вставить("OAUTH-TOKEN", ТокенАвторизации);
КонецЕсли;
Заголовки.Вставить("FILE-NAME", ФайлПакета.Имя);
Заголовки.Вставить("CHANNEL", Канал);
Если ЗначениеЗаполнено(ДополнительныеЗаголовки) Тогда
Для Каждого мЗаголовок Из ДополнительныеЗаголовки Цикл
Заголовки.Вставить(мЗаголовок.Ключ, ОбщегоНазначенияOpm.ПрименитьПеременныеСреды(мЗаголовок.Значение));
КонецЦикла;
КонецЕсли;

Соединение = Новый HTTPСоединение(Сервер);
Соединение = Новый HTTPСоединение(Сервер,,,,, Таймаут);
Запрос = Новый HTTPЗапрос(Ресурс, Заголовки);
Запрос.УстановитьТелоИзДвоичныхДанных(ДвоичныеДанныеФайла);

Expand Down
35 changes: 1 addition & 34 deletions src/core/Классы/СерверПакетов.os
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
#Использовать strings

Перем Лог;

Перем Имя Экспорт;
Expand Down Expand Up @@ -157,40 +155,9 @@
КонецПроцедуры

Процедура ДобавитьЗаголовокКЗапросу(Знач Запрос, Знач Заголовок, Знач Значение)
Запрос.Заголовки.Вставить(Заголовок, ПрименитьПеременныеСреды(Значение));
Запрос.Заголовки.Вставить(Заголовок, ОбщегоНазначенияOpm.ПрименитьПеременныеСреды(Значение));
КонецПроцедуры

Функция ПрименитьПеременныеСреды(Знач Значение)
ПеременныеСреды = КакМассив(ПеременныеСреды());
Возврат ПрименитьПеременныеСредыШаг(Значение, ПеременныеСреды, 0);
КонецФункции

Функция ПрименитьПеременныеСредыШаг(Знач Значение, Знач ПеременныеСреды, Знач Индекс)

ПеременнаяИмя = СтрШаблон("${%1}", ПеременныеСреды[Индекс].Ключ);
Части = СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(Значение, ПеременнаяИмя);
Если Индекс < ПеременныеСреды.Количество() - 1 Тогда
Для Инд = 0 По Части.ВГраница() Цикл
Части[Инд] = ПрименитьПеременныеСредыШаг(Части[Инд], ПеременныеСреды, Индекс + 1);
КонецЦикла;
КонецЕсли;

Результат = СтрСоединить(Части, ПеременныеСреды[Индекс].Значение);
Возврат Результат;

КонецФункции

Функция КакМассив(Знач Соответствие)

Массив = Новый Массив;
Для Каждого мКлючИЗанчение Из Соответствие Цикл
Массив.Добавить(мКлючИЗанчение);
КонецЦикла;

Возврат Массив;

КонецФункции

Функция НастройкаДляВыгрузки() Экспорт

Результат = Новый Структура;
Expand Down
39 changes: 39 additions & 0 deletions src/core/Модули/ОбщегоНазначенияOpm.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#Использовать strings

// Подставляет переменные среды в строку
//
// Параметры:
// Значение - Строка - Исходная строка. Подстроки вида ${ИМЯ_ПЕРЕМЕННОЙ} заменяются на значение переменной
//
// Возвращаемое значение:
// Строка - Строка с подставленными значениями переменных
Функция ПрименитьПеременныеСреды(Знач Значение) Экспорт
ПеременныеСреды = КакМассив(ПеременныеСреды());
Возврат ПрименитьПеременныеСредыШаг(Значение, ПеременныеСреды, 0);
КонецФункции

Функция ПрименитьПеременныеСредыШаг(Знач Значение, Знач ПеременныеСреды, Знач Индекс)

ПеременнаяИмя = СтрШаблон("${%1}", ПеременныеСреды[Индекс].Ключ);
Части = СтроковыеФункции.РазложитьСтрокуВМассивПодстрок(Значение, ПеременнаяИмя);
Если Индекс < ПеременныеСреды.Количество() - 1 Тогда
Для Инд = 0 По Части.ВГраница() Цикл
Части[Инд] = ПрименитьПеременныеСредыШаг(Части[Инд], ПеременныеСреды, Индекс + 1);
КонецЦикла;
КонецЕсли;

Результат = СтрСоединить(Части, ПеременныеСреды[Индекс].Значение);
Возврат Результат;

КонецФункции

Функция КакМассив(Знач Соответствие)

Массив = Новый Массив;
Для Каждого мКлючИЗанчение Из Соответствие Цикл
Массив.Добавить(мКлючИЗанчение);
КонецЦикла;

Возврат Массив;

КонецФункции

0 comments on commit d09eb99

Please sign in to comment.