fix: не отправлять в SharePoint поля с пустым значением

Состав полей зависит от вида обращения и анонимности, поэтому часть строк
заведомо пустая. Пустая строка в списке выглядит как заполненное значение,
а не как отсутствующее поле — теперь такие поля выпадают из payload.
Значения обрезаются, так что поле из одних пробелов тоже не уедет.

WantsFeedback остаётся всегда: false здесь осмысленно, а не пусто.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-24 13:01:25 +05:00
parent 0eb81e61e5
commit e9ae3d5bab
+12 -1
View File
@@ -55,7 +55,7 @@ function buildFields(data: IFeedbackSubmission): Record<string, unknown> {
console.warn(`Неизвестный id компании из формы, отправляю как есть: ${data.company}`);
}
return {
const fields: Record<string, unknown> = {
Title: name ? `${typeLabel} — ${name}` : typeLabel,
Company: companyName ?? data.company,
Name: name,
@@ -65,6 +65,17 @@ function buildFields(data: IFeedbackSubmission): Record<string, unknown> {
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<void> {