diff options
-rw-r--r-- | api4/api.go | 1 | ||||
-rw-r--r-- | api4/system.go | 21 | ||||
-rw-r--r-- | api4/system_test.go | 18 | ||||
-rw-r--r-- | model/client4.go | 13 |
4 files changed, 53 insertions, 0 deletions
diff --git a/api4/api.go b/api4/api.go index b05c1a7db..b352d0b15 100644 --- a/api4/api.go +++ b/api4/api.go @@ -143,6 +143,7 @@ func InitApi(full bool) { InitTeam() InitChannel() InitPost() + InitSystem() app.Srv.Router.Handle("/api/v4/{anything:.*}", http.HandlerFunc(Handle404)) diff --git a/api4/system.go b/api4/system.go new file mode 100644 index 000000000..94f4718a2 --- /dev/null +++ b/api4/system.go @@ -0,0 +1,21 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package api4 + +import ( + "net/http" + + l4g "github.com/alecthomas/log4go" + "github.com/mattermost/platform/utils" +) + +func InitSystem() { + l4g.Debug(utils.T("api.system.init.debug")) + + BaseRoutes.System.Handle("/ping", ApiHandler(getSystemPing)).Methods("GET") +} + +func getSystemPing(c *Context, w http.ResponseWriter, r *http.Request) { + ReturnStatusOK(w) +} diff --git a/api4/system_test.go b/api4/system_test.go new file mode 100644 index 000000000..d9514eabc --- /dev/null +++ b/api4/system_test.go @@ -0,0 +1,18 @@ +package api4 + +import ( + "testing" +) + +func TestGetPing(t *testing.T) { + th := Setup().InitBasic() + defer TearDown() + Client := th.Client + + b, _ := Client.GetPing() + if b == false { + t.Fatal() + } +} + + diff --git a/model/client4.go b/model/client4.go index 48a88e968..ec91460fd 100644 --- a/model/client4.go +++ b/model/client4.go @@ -112,6 +112,10 @@ func (c *Client4) GetPostRoute(postId string) string { return fmt.Sprintf(c.GetPostsRoute()+"/%v", postId) } +func (c *Client4) GetSystemRoute() string { + return fmt.Sprintf("/system") +} + func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError) { return c.DoApiRequest(http.MethodGet, url, "", etag) } @@ -570,5 +574,14 @@ func (c *Client4) GetPostsForChannel(channelId string, page, perPage int, etag s } } +func (c *Client4) GetPing() (bool, *Response) { + if r, err := c.DoApiGet(c.GetSystemRoute()+"/ping", ""); err != nil { + return false, &Response{StatusCode: r.StatusCode, Error: err} + } else { + defer closeBody(r) + return CheckStatusOK(r), BuildResponse(r) + } +} + // Files Section // to be filled in.. |