summaryrefslogtreecommitdiffstats
path: root/app/preference.go
diff options
context:
space:
mode:
authorRuzette Tanyag <ruzette@users.noreply.github.com>2017-02-28 04:14:16 -0500
committerGeorge Goldberg <george@gberg.me>2017-02-28 09:14:16 +0000
commitcef5028cbeed93b6493f6d1f379afe4ca85535c8 (patch)
tree6424b7878b372c6457845f933d7406c971399f79 /app/preference.go
parent758402311a97a053a5276049db6dce4f8f8dcfbc (diff)
downloadchat-cef5028cbeed93b6493f6d1f379afe4ca85535c8.tar.gz
chat-cef5028cbeed93b6493f6d1f379afe4ca85535c8.tar.bz2
chat-cef5028cbeed93b6493f6d1f379afe4ca85535c8.zip
Implemented preferences endpoints for apiv4 (#5531)
* implemented preferences endpoints for apiv4 * added user id in preferences endpoints
Diffstat (limited to 'app/preference.go')
-rw-r--r--app/preference.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/app/preference.go b/app/preference.go
index 4e492c4a8..ff251fb16 100644
--- a/app/preference.go
+++ b/app/preference.go
@@ -5,12 +5,56 @@ package app
import (
"github.com/mattermost/platform/model"
+ "net/http"
)
func GetPreferencesForUser(userId string) (model.Preferences, *model.AppError) {
if result := <-Srv.Store.Preference().GetAll(userId); result.Err != nil {
+ result.Err.StatusCode = http.StatusBadRequest
return nil, result.Err
} else {
return result.Data.(model.Preferences), nil
}
}
+
+func GetPreferenceByCategoryForUser(userId string, category string) (model.Preferences, *model.AppError) {
+ if result := <-Srv.Store.Preference().GetCategory(userId, category); result.Err != nil {
+ result.Err.StatusCode = http.StatusBadRequest
+ return nil, result.Err
+ } else if len(result.Data.(model.Preferences)) == 0 {
+ err := model.NewAppError("getPreferenceCategory", "api.preference.preferences_category.get.app_error", nil, "", http.StatusNotFound)
+ return nil, err
+ } else {
+ return result.Data.(model.Preferences), nil
+ }
+}
+
+func GetPreferenceByCategoryAndNameForUser(userId string, category string, preferenceName string) (*model.Preference, *model.AppError) {
+ if result := <-Srv.Store.Preference().Get(userId, category, preferenceName); result.Err != nil {
+ result.Err.StatusCode = http.StatusBadRequest
+ return nil, result.Err
+ } else {
+ data := result.Data.(model.Preference)
+ return &data, nil
+ }
+}
+
+func UpdatePreferences(preferences model.Preferences) (bool, *model.AppError) {
+ if result := <-Srv.Store.Preference().Save(&preferences); result.Err != nil {
+ result.Err.StatusCode = http.StatusBadRequest
+ return false, result.Err
+ }
+
+ return true, nil
+}
+
+func DeletePreferences(userId string, preferences model.Preferences) (bool, *model.AppError) {
+ for _, preference := range preferences {
+ if result := <-Srv.Store.Preference().Delete(userId, preference.Category, preference.Name); result.Err != nil {
+ result.Err.StatusCode = http.StatusBadRequest
+ return false, result.Err
+ }
+ }
+
+ return true, nil
+}