MM-26410/MM-26825 Improve syncing between favorites category and preferences (#15048)
* MM-26410 Allow moving channels into Favorites when they're favorited in prefs * MM-26410 Fix management of Favorites category when updating preferences * MM-26410 Add management of Favorites category when deleting preferences * Address feedback 1 * Remove WHERE (1=1) from query * Remove unnecessary sq.Expr * Rewrite query to use left join * Remove redundant where statement and add some more tests * Fix linting issues * Rename addChannelToFavoritesCategory to addChannelToFavoritesCategory
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7602dc0b19
Коммит
14aba9bccb
@@ -54,9 +54,11 @@ func (a *App) UpdatePreferences(userId string, preferences model.Preferences) *m
|
||||
}
|
||||
|
||||
if err := a.Srv().Store.Channel().UpdateSidebarChannelsByPreferences(&preferences); err != nil {
|
||||
return err
|
||||
return model.NewAppError("UpdatePreferences", "api.preference.update_preferences.update_sidebar.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_UPDATED, "", "", userId, nil)
|
||||
// TODO this needs to be updated to include information on which categories changed
|
||||
a.Publish(message)
|
||||
|
||||
message = model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PREFERENCES_CHANGED, "", "", userId, nil)
|
||||
@@ -69,7 +71,7 @@ func (a *App) UpdatePreferences(userId string, preferences model.Preferences) *m
|
||||
func (a *App) DeletePreferences(userId string, preferences model.Preferences) *model.AppError {
|
||||
for _, preference := range preferences {
|
||||
if userId != preference.UserId {
|
||||
err := model.NewAppError("deletePreferences", "api.preference.delete_preferences.delete.app_error", nil,
|
||||
err := model.NewAppError("DeletePreferences", "api.preference.delete_preferences.delete.app_error", nil,
|
||||
"userId="+userId+", preference.UserId="+preference.UserId, http.StatusForbidden)
|
||||
return err
|
||||
}
|
||||
@@ -82,7 +84,15 @@ func (a *App) DeletePreferences(userId string, preferences model.Preferences) *m
|
||||
}
|
||||
}
|
||||
|
||||
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PREFERENCES_DELETED, "", "", userId, nil)
|
||||
if err := a.Srv().Store.Channel().DeleteSidebarChannelsByPreferences(&preferences); err != nil {
|
||||
return model.NewAppError("DeletePreferences", "api.preference.delete_preferences.update_sidebar.app_error", nil, err.Error(), http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_SIDEBAR_CATEGORY_UPDATED, "", "", userId, nil)
|
||||
// TODO this needs to be updated to include information on which categories changed
|
||||
a.Publish(message)
|
||||
|
||||
message = model.NewWebSocketEvent(model.WEBSOCKET_EVENT_PREFERENCES_DELETED, "", "", userId, nil)
|
||||
message.Add("preferences", preferences.ToJson())
|
||||
a.Publish(message)
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user