From e9ae3d5babc8fea657649f6450172da11b2889d0 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Mon, 24 Aug 2026 13:01:25 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BD=D0=B5=20=D0=BE=D1=82=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D1=8F=D1=82=D1=8C=20=D0=B2=20SharePoint=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8F=20=D1=81=20=D0=BF=D1=83=D1=81=D1=82?= =?UTF-8?q?=D1=8B=D0=BC=20=D0=B7=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B5?= =?UTF-8?q?=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Состав полей зависит от вида обращения и анонимности, поэтому часть строк заведомо пустая. Пустая строка в списке выглядит как заполненное значение, а не как отсутствующее поле — теперь такие поля выпадают из payload. Значения обрезаются, так что поле из одних пробелов тоже не уедет. WantsFeedback остаётся всегда: false здесь осмысленно, а не пусто. Co-Authored-By: Claude Opus 5 --- server/src/sharepoint.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/src/sharepoint.ts b/server/src/sharepoint.ts index a5a78e4..a83f20c 100644 --- a/server/src/sharepoint.ts +++ b/server/src/sharepoint.ts @@ -55,7 +55,7 @@ function buildFields(data: IFeedbackSubmission): Record { console.warn(`Неизвестный id компании из формы, отправляю как есть: ${data.company}`); } - return { + const fields: Record = { Title: name ? `${typeLabel} — ${name}` : typeLabel, Company: companyName ?? data.company, Name: name, @@ -65,6 +65,17 @@ function buildFields(data: IFeedbackSubmission): Record { SuggestionText: data.suggestion, WantsFeedback: data.wantsFeedback }; + + // Состав полей зависит от вида обращения и анонимности, поэтому часть строк + // заведомо пустая (у предложения нет описания ситуации, у анонимного — ФИО). + // Такие поля не отправляем вовсе: пустая строка в списке выглядит как + // заполненное значение, а не как «поля не было». WantsFeedback при этом + // остаётся всегда — false здесь осмысленное значение, а не пустота. + return Object.fromEntries( + Object.entries(fields) + .map(([key, value]) => [key, typeof value === 'string' ? value.trim() : value]) + .filter(([, value]) => value !== '') + ); } export async function submitFeedback(data: IFeedbackSubmission): Promise {