Element_Test_V2/Koncept/Testovoe/Пресейл/СделкиHttpСервис.xbsl
Vladislav_k0ncept f16c003f46 Initial commit
2025-02-20 15:05:58 +00:00

99 lines
5.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Метод будет вызван для GET-запроса вида {Адрес приложения}/api/deals?stage={Стадия1}&stage={Стадия2}
метод ПолучитьСделки(Запрос: HttpСервисЗапрос)
знч Стадии = Запрос.Параметры.ПолучитьВсе("stage")
Запрос.Ответ.Заголовки.Установить("Content-Type", "application/json")
исп ПотокЗаписиТела = Запрос.Ответ.ОткрытьПотокЗаписиТела()
ЗаписатьДанныеСделокВПоток(ПотокЗаписиТела, Стадии)
;
// Метод будет вызван для GET-запроса вида {Адрес приложения}/api/deals/{deal}
метод ПолучитьСделку(Запрос: HttpСервисЗапрос)
знч КодСделки = Запрос.Параметры.ПолучитьПервый("deal")
если КодСделки != Неопределено
знч ДанныеСделки = ПолучитьДанныеСделки(КодСделки)
если ДанныеСделки != Неопределено
знч ТелоОтвета = СериализацияJson.ЗаписатьОбъект(ДанныеСделки)
Запрос.Ответ.Заголовки.Установить("Content-Type", "application/json")
Запрос.Ответ.УстановитьТело(ТелоОтвета)
возврат
;
;
Запрос.Ответ.УстановитьКодСтатуса(404)
Запрос.Ответ.УстановитьТело("Сделка не найдена")
;
метод ЗаписатьДанныеСделокВПоток(ПотокЗаписи: ПотокЗаписи, Стадии: ЧитаемыйМассив<Строка>)
знч Запрос = Запрос{
ВЫБРАТЬ
Сделки.Код КАК Код,
Сделки.ДатаСоздания КАК ДатаСоздания,
Сделки.Клиент КАК Клиент,
Сделки.Наименование КАК Наименование,
Сделки.Стадия КАК Стадия,
Сделки.СуммаВВалютеСделки КАК Сумма,
Сделки.ВалютаСделки.Код КАК Валюта
ИЗ
Сделки КАК Сделки
ГДЕ
Сделки.Стадия.Наименование В (%Стадии) ИЛИ %{Стадии.Пусто()}
}
ПотокЗаписи.Записать("[")
пер Первый = Истина
для СтрокаРезультата из Запрос.Выполнить()
если не Первый
ПотокЗаписи.Записать(",\n")
;
Первый = Ложь
знч СделкаСоответствие: Соответствие<Строка, Объект?> = {
"Код" : СтрокаРезультата.Код,
"ДатаСоздания" : СтрокаРезультата.ДатаСоздания,
"Клиент" : СтрокаРезультата.Клиент.Представление(),
"Наименование" : СтрокаРезультата.Наименование,
"Стадия" : СтрокаРезультата.Стадия.Представление(),
"Сумма" : СтрокаРезультата.Сумма,
"Валюта" : СтрокаРезультата.Валюта
}
ПотокЗаписи.Записать(СериализацияJson.ЗаписатьОбъект(СделкаСоответствие))
;
ПотокЗаписи.Записать("]")
;
метод ПолучитьДанныеСделки(КодСделки: Строка): ЧитаемоеСоответствие<Строка, Объект?>?
знч Запрос = Запрос{
ВЫБРАТЬ
Сделки.Код КАК Код,
Сделки.ДатаСоздания КАК ДатаСоздания,
Сделки.Клиент КАК Клиент,
Сделки.Наименование КАК Наименование,
Сделки.Стадия КАК Стадия,
Сделки.СуммаВВалютеСделки КАК Сумма,
Сделки.ВалютаСделки.Код КАК Валюта
ИЗ
Сделки КАК Сделки
ГДЕ
Сделки.Код == %КодСделки
}
возврат Запрос.Выполнить().Преобразовать(СтрокаРезультата ->
{
"Код" : СтрокаРезультата.Код,
"ДатаСоздания" : СтрокаРезультата.ДатаСоздания,
"Клиент" : СтрокаРезультата.Клиент.Представление(),
"Наименование" : СтрокаРезультата.Наименование,
"Стадия" : СтрокаРезультата.Стадия.Представление(),
"Сумма" : СтрокаРезультата.Сумма,
"Валюта" : СтрокаРезультата.Валюта
}
).ЕдинственныйИлиУмолчание()
;