From 76bd1bb212177824379c485c553e54530a854009 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Mon, 2 Oct 2017 12:43:21 +0100 Subject: PLT-7705: API to get data retention policy. (#7539) * PLT-7705: API to get data retention policy. * Fix review comments. --- api4/api.go | 4 ++++ api4/data_retention.go | 30 ++++++++++++++++++++++++++++++ api4/data_retention_test.go | 16 ++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 api4/data_retention.go create mode 100644 api4/data_retention_test.go (limited to 'api4') diff --git a/api4/api.go b/api4/api.go index e9cf3054c..c712b67f2 100644 --- a/api4/api.go +++ b/api4/api.go @@ -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() diff --git a/api4/data_retention.go b/api4/data_retention.go new file mode 100644 index 000000000..da0d5812e --- /dev/null +++ b/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())) + } +} diff --git a/api4/data_retention_test.go b/api4/data_retention_test.go new file mode 100644 index 000000000..9a0b35ea6 --- /dev/null +++ b/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) +} -- cgit v1.2.3-1-g7c22