diff options
author | George Goldberg <george@gberg.me> | 2017-10-02 12:43:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-02 12:43:21 +0100 |
commit | 76bd1bb212177824379c485c553e54530a854009 (patch) | |
tree | f4b3c41ff3ff72c96ab58e944e4254bfca4fd8be /api4 | |
parent | 9bc7af0c5704bbf73f8240b4569d5ea215352e39 (diff) | |
download | chat-76bd1bb212177824379c485c553e54530a854009.tar.gz chat-76bd1bb212177824379c485c553e54530a854009.tar.bz2 chat-76bd1bb212177824379c485c553e54530a854009.zip |
PLT-7705: API to get data retention policy. (#7539)
* PLT-7705: API to get data retention policy.
* Fix review comments.
Diffstat (limited to 'api4')
-rw-r--r-- | api4/api.go | 4 | ||||
-rw-r--r-- | api4/data_retention.go | 30 | ||||
-rw-r--r-- | api4/data_retention_test.go | 16 |
3 files changed, 50 insertions, 0 deletions
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) +} |