summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-10-02 12:43:21 +0100
committerGitHub <noreply@github.com>2017-10-02 12:43:21 +0100
commit76bd1bb212177824379c485c553e54530a854009 (patch)
treef4b3c41ff3ff72c96ab58e944e4254bfca4fd8be /api4
parent9bc7af0c5704bbf73f8240b4569d5ea215352e39 (diff)
downloadchat-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.go4
-rw-r--r--api4/data_retention.go30
-rw-r--r--api4/data_retention_test.go16
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)
+}