PLT-7705: API to get data retention policy. (#7539)

* PLT-7705: API to get data retention policy.

* Fix review comments.
Этот коммит содержится в:
George Goldberg
2017-10-02 12:43:21 +01:00
коммит произвёл GitHub
родитель 9bc7af0c57
Коммит 76bd1bb212
13 изменённых файлов: 157 добавлений и 12 удалений

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

@@ -254,6 +254,10 @@ func (c *Client4) GetBrandRoute() string {
return fmt.Sprintf("/brand")
}
func (c *Client4) GetDataRetentionRoute() string {
return fmt.Sprintf("/data_retention")
}
func (c *Client4) GetElasticsearchRoute() string {
return fmt.Sprintf("/elasticsearch")
}
@@ -2747,6 +2751,18 @@ func (c *Client4) PurgeElasticsearchIndexes() (bool, *Response) {
}
}
// Data Retention Section
// GetDataRetentionPolicy will get the current server data retention policy details.
func (c *Client4) GetDataRetentionPolicy() (*DataRetentionPolicy, *Response) {
if r, err := c.DoApiGet(c.GetDataRetentionRoute()+"/policy", ""); err != nil {
return nil, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
return DataRetentionPolicyFromJson(r.Body), BuildResponse(r)
}
}
// Commands Section
// CreateCommand will create a new command if the user have the right permissions.

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

@@ -0,0 +1,36 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
"encoding/json"
"io"
)
type DataRetentionPolicy struct {
MessageDeletionEnabled bool `json:"message_deletion_enabled"`
FileDeletionEnabled bool `json:"file_deletion_enabled"`
MessageRetentionCutoff int64 `json:"message_retention_cutoff"`
FileRetentionCutoff int64 `json:"file_retention_cutoff"`
}
func (me *DataRetentionPolicy) ToJson() string {
b, err := json.Marshal(me)
if err != nil {
return ""
} else {
return string(b)
}
}
func DataRetentionPolicyFromJson(data io.Reader) *DataRetentionPolicy {
decoder := json.NewDecoder(data)
var me DataRetentionPolicy
err := decoder.Decode(&me)
if err == nil {
return &me
} else {
return nil
}
}