summaryrefslogtreecommitdiffstats
path: root/app/preference.go
diff options
context:
space:
mode:
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
+}