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 удалений

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

@@ -80,6 +80,8 @@ type Routes struct {
Elasticsearch *mux.Router // 'api/v4/elasticsearch'
DataRetention *mux.Router // 'api/v4/data_retention'
Brand *mux.Router // 'api/v4/brand'
System *mux.Router // 'api/v4/system'
@@ -185,6 +187,7 @@ func Init(a *app.App, root *mux.Router, full bool) *API {
api.BaseRoutes.Reactions = api.BaseRoutes.ApiRoot.PathPrefix("/reactions").Subrouter()
api.BaseRoutes.Jobs = api.BaseRoutes.ApiRoot.PathPrefix("/jobs").Subrouter()
api.BaseRoutes.Elasticsearch = api.BaseRoutes.ApiRoot.PathPrefix("/elasticsearch").Subrouter()
api.BaseRoutes.DataRetention = api.BaseRoutes.ApiRoot.PathPrefix("/data_retention").Subrouter()
api.BaseRoutes.Emojis = api.BaseRoutes.ApiRoot.PathPrefix("/emoji").Subrouter()
api.BaseRoutes.Emoji = api.BaseRoutes.Emojis.PathPrefix("/{emoji_id:[A-Za-z0-9]+}").Subrouter()
@@ -208,6 +211,7 @@ func Init(a *app.App, root *mux.Router, full bool) *API {
api.InitCluster()
api.InitLdap()
api.InitElasticsearch()
api.InitDataRetention()
api.InitBrand()
api.InitJob()
api.InitCommand()

30
api4/data_retention.go Обычный файл
Просмотреть файл

@@ -0,0 +1,30 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"net/http"
l4g "github.com/alecthomas/log4go"
"github.com/mattermost/mattermost-server/utils"
)
func (api *API) InitDataRetention() {
l4g.Debug(utils.T("api.data_retention.init.debug"))
api.BaseRoutes.DataRetention.Handle("/policy", api.ApiSessionRequired(getPolicy)).Methods("GET")
}
func getPolicy(c *Context, w http.ResponseWriter, r *http.Request) {
// No permission check required.
if policy, err := c.App.GetDataRetentionPolicy(); err != nil {
c.Err = err
return
} else {
w.Write([]byte(policy.ToJson()))
}
}

16
api4/data_retention_test.go Обычный файл
Просмотреть файл

@@ -0,0 +1,16 @@
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package api4
import (
"testing"
)
func TestDataRetentionGetPolicy(t *testing.T) {
th := Setup().InitBasic()
defer TearDown()
_, resp := th.Client.GetDataRetentionPolicy()
CheckNotImplementedStatus(t, resp)
}