feat(notification-settings): align chatwoot payloads

This commit is contained in:
2026-06-06 02:55:51 +08:00
parent d49aafd2c3
commit 4b2c1a97ae
5 changed files with 62 additions and 22 deletions
@@ -55,9 +55,7 @@ func (h *NotificationSettingHandler) Show(c *gin.Context) {
return
}
response.OK(c, gin.H{
"notification_setting": serializeNotificationSetting(ns),
})
c.JSON(http.StatusOK, serializeNotificationSetting(ns))
}
// Update modifies notification settings for the current user in the account.
@@ -89,21 +87,19 @@ func (h *NotificationSettingHandler) Update(c *gin.Context) {
return
}
response.OK(c, gin.H{
"notification_setting": serializeNotificationSetting(ns),
})
c.JSON(http.StatusOK, serializeNotificationSetting(ns))
}
// serializeNotificationSetting builds the response object matching Chatwoot Jbuilder show.json.jbuilder:
// id, user_id, account_id, all_email_flags, selected_email_flags, all_push_flags, selected_push_flags
func serializeNotificationSetting(ns *model.NotificationSetting) gin.H {
return gin.H{
"id": ns.ID,
"user_id": ns.UserID,
"account_id": ns.AccountID,
"all_email_flags": model.AllEmailFlagNames(),
"id": ns.ID,
"user_id": ns.UserID,
"account_id": ns.AccountID,
"all_email_flags": model.AllEmailFlagNames(),
"selected_email_flags": ns.SelectedEmailFlagNames(),
"all_push_flags": model.AllPushFlagNames(),
"selected_push_flags": ns.SelectedPushFlagNames(),
"all_push_flags": model.AllPushFlagNames(),
"selected_push_flags": ns.SelectedPushFlagNames(),
}
}
}