fix(api): /users/@me отдаёт custom_status_emoji
Редактор профиля в настройках читает `user.custom_status_emoji` и вызывает
`.trim()` прямо при отрисовке, а ручка это поле не возвращала: открытие
«Настройки → Профиль» падало с «Cannot read properties of undefined (reading
'trim')» (дефект с 22.09, commit 085454d — клиент поле требовал, сервер не
отдавал). Теперь поле приходит всегда, как и `custom_status`.
Найдено живой проверкой на стенде; тест `profile_payload_test.go` проверяет, что
ключ есть в ответе даже с пустым значением, и что PATCH его сохраняет.
This commit is contained in:
@@ -15,17 +15,20 @@ import (
|
||||
|
||||
// profilePayload — публичный профиль пользователя (AGENT.md 8.2).
|
||||
type profilePayload struct {
|
||||
ID string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
DisplayName string `json:"display_name"`
|
||||
Bio string `json:"bio"`
|
||||
Status string `json:"status"`
|
||||
CustomStatus string `json:"custom_status"`
|
||||
AvatarFileID string `json:"avatar_file_id,omitempty"`
|
||||
BannerFileID string `json:"banner_file_id,omitempty"`
|
||||
IsInstanceAdmin bool `json:"is_instance_admin"`
|
||||
Badges []string `json:"badges"`
|
||||
Locale string `json:"locale"`
|
||||
ID string `json:"id"`
|
||||
Username string `json:"username"`
|
||||
DisplayName string `json:"display_name"`
|
||||
Bio string `json:"bio"`
|
||||
Status string `json:"status"`
|
||||
CustomStatus string `json:"custom_status"`
|
||||
// CustomStatusEmoji — эмодзи статуса: клиент подставляет его в редактор
|
||||
// профиля, поэтому поле отдаётся всегда, а не только непустым.
|
||||
CustomStatusEmoji string `json:"custom_status_emoji"`
|
||||
AvatarFileID string `json:"avatar_file_id,omitempty"`
|
||||
BannerFileID string `json:"banner_file_id,omitempty"`
|
||||
IsInstanceAdmin bool `json:"is_instance_admin"`
|
||||
Badges []string `json:"badges"`
|
||||
Locale string `json:"locale"`
|
||||
// OnboardingCompleted — признак пройденной первичной настройки (AGENT.md 7.2).
|
||||
OnboardingCompleted bool `json:"onboarding_completed"`
|
||||
// TOTPEnabled — включена ли 2FA: клиенту нужно знать, требовать ли код
|
||||
@@ -63,6 +66,7 @@ func profileFromUser(user *store.User, includePrivate bool) profilePayload {
|
||||
Bio: user.Bio,
|
||||
Status: user.Status,
|
||||
CustomStatus: user.CustomStatus,
|
||||
CustomStatusEmoji: user.CustomStatusEmoji,
|
||||
IsInstanceAdmin: user.IsInstanceAdmin,
|
||||
Badges: user.Badges,
|
||||
OnboardingCompleted: user.OnboardingCompletedAt != nil,
|
||||
|
||||
Reference in New Issue
Block a user