Made structural changes to server-side Preference code based on feedback

Этот коммит содержится в:
hmhealey
2015-10-09 13:47:11 -04:00
родитель 8a7aa7f66f
Коммит 5cecf1afcd
9 изменённых файлов: 220 добавлений и 355 удалений

Просмотреть файл

@@ -844,12 +844,12 @@ func (c *Client) ListIncomingWebhooks() (*Result, *AppError) {
}
}
func (c *Client) SetPreferences(preferences []*Preference) (*Result, *AppError) {
if r, err := c.DoApiPost("/preferences/set", PreferenceListToJson(preferences)); err != nil {
func (c *Client) SetPreferences(preferences *Preferences) (*Result, *AppError) {
if r, err := c.DoApiPost("/preferences/save", preferences.ToJson()); err != nil {
return nil, err
} else {
return &Result{r.Header.Get(HEADER_REQUEST_ID),
r.Header.Get(HEADER_ETAG_SERVER), nil}, nil
r.Header.Get(HEADER_ETAG_SERVER), preferences}, nil
}
}
@@ -857,8 +857,8 @@ func (c *Client) GetPreferencesByName(category string, name string) (*Result, *A
if r, err := c.DoApiGet("/preferences/"+category+"/"+name, "", ""); err != nil {
return nil, err
} else {
return &Result{r.Header.Get(HEADER_REQUEST_ID),
r.Header.Get(HEADER_ETAG_SERVER), PreferenceListFromJson(r.Body)}, nil
preferences, _ := PreferencesFromJson(r.Body)
return &Result{r.Header.Get(HEADER_REQUEST_ID), r.Header.Get(HEADER_ETAG_SERVER), preferences}, nil
}
}

Просмотреть файл

@@ -32,15 +32,6 @@ func (o *Preference) ToJson() string {
}
}
func PreferenceListToJson(o []*Preference) string {
b, err := json.Marshal(o)
if err != nil {
return ""
} else {
return string(b)
}
}
func PreferenceFromJson(data io.Reader) *Preference {
decoder := json.NewDecoder(data)
var o Preference
@@ -52,17 +43,6 @@ func PreferenceFromJson(data io.Reader) *Preference {
}
}
func PreferenceListFromJson(data io.Reader) []*Preference {
decoder := json.NewDecoder(data)
var o []*Preference
err := decoder.Decode(&o)
if err == nil {
return o
} else {
return nil
}
}
func (o *Preference) IsValid() *AppError {
if len(o.UserId) != 26 {
return NewAppError("Preference.IsValid", "Invalid user id", "user_id="+o.UserId)

31
model/preferences.go Обычный файл
Просмотреть файл

@@ -0,0 +1,31 @@
// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
"encoding/json"
"io"
)
type Preferences []*Preference
func (o *Preferences) ToJson() string {
b, err := json.Marshal(o)
if err != nil {
return ""
} else {
return string(b)
}
}
func PreferencesFromJson(data io.Reader) (Preferences, error) {
decoder := json.NewDecoder(data)
var o Preferences
err := decoder.Decode(&o)
if err == nil {
return o, nil
} else {
return nil, err
}
}