summaryrefslogtreecommitdiffstats
path: root/api/preference.go
diff options
context:
space:
mode:
authorhmhealey <harrisonmhealey@gmail.com>2015-10-13 15:18:01 -0400
committerhmhealey <harrisonmhealey@gmail.com>2015-10-13 15:36:58 -0400
commit97b2f6ffe7fa09a2188163740865322582b00b59 (patch)
tree69c11911d8c364b8d6bb31c2723a8f046b8b61e3 /api/preference.go
parent2a39e8dbfab8506b09d0d030f87cac4c079b975a (diff)
downloadchat-97b2f6ffe7fa09a2188163740865322582b00b59.tar.gz
chat-97b2f6ffe7fa09a2188163740865322582b00b59.tar.bz2
chat-97b2f6ffe7fa09a2188163740865322582b00b59.zip
Made further changes based on feedback
Diffstat (limited to 'api/preference.go')
-rw-r--r--api/preference.go22
1 files changed, 13 insertions, 9 deletions
diff --git a/api/preference.go b/api/preference.go
index 2f5ba12dd..88cb132f8 100644
--- a/api/preference.go
+++ b/api/preference.go
@@ -14,9 +14,9 @@ func InitPreference(r *mux.Router) {
l4g.Debug("Initializing preference api routes")
sr := r.PathPrefix("/preferences").Subrouter()
- sr.Handle("/save", ApiAppHandler(savePreferences)).Methods("POST")
- sr.Handle("/{category:[A-Za-z0-9_]+}", ApiAppHandler(getPreferenceCategory)).Methods("GET")
- sr.Handle("/{category:[A-Za-z0-9_]+}/{name:[A-Za-z0-9_]+}", ApiAppHandler(getPreference)).Methods("GET")
+ sr.Handle("/save", ApiUserRequired(savePreferences)).Methods("POST")
+ sr.Handle("/{category:[A-Za-z0-9_]+}", ApiUserRequired(getPreferenceCategory)).Methods("GET")
+ sr.Handle("/{category:[A-Za-z0-9_]+}/{name:[A-Za-z0-9_]+}", ApiUserRequired(getPreference)).Methods("GET")
}
func savePreferences(c *Context, w http.ResponseWriter, r *http.Request) {
@@ -52,17 +52,21 @@ func getPreferenceCategory(c *Context, w http.ResponseWriter, r *http.Request) {
} else {
data := result.Data.(model.Preferences)
- if len(data) == 0 {
- if category == model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW {
- // add direct channels for a user that existed before preferences were added
- data = addDirectChannels(c.Session.UserId, c.Session.TeamId)
- }
- }
+ data = transformPreferences(c, data, category)
w.Write([]byte(data.ToJson()))
}
}
+func transformPreferences(c *Context, preferences model.Preferences, category string) model.Preferences {
+ if len(preferences) == 0 && category == model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW {
+ // add direct channels for a user that existed before preferences were added
+ preferences = addDirectChannels(c.Session.UserId, c.Session.TeamId)
+ }
+
+ return preferences
+}
+
func addDirectChannels(userId, teamId string) model.Preferences {
var profiles map[string]*model.User
if result := <-Srv.Store.User().GetProfiles(teamId); result.Err != nil {