Added api to get and set preferences

Этот коммит содержится в:
hmhealey
2015-10-01 15:22:04 -04:00
родитель da66599fa3
Коммит a087403e9f
5 изменённых файлов: 278 добавлений и 0 удалений

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

@@ -844,6 +844,24 @@ 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 {
return nil, err
} else {
return &Result{r.Header.Get(HEADER_REQUEST_ID),
r.Header.Get(HEADER_ETAG_SERVER), nil}, nil
}
}
func (c *Client) GetPreferencesByName(category string, name string) (*Result, *AppError) {
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
}
}
func (c *Client) MockSession(sessionToken string) {
c.AuthToken = sessionToken
c.AuthType = HEADER_BEARER

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

@@ -32,6 +32,15 @@ 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
@@ -43,6 +52,17 @@ 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)