From 48b785aded359c98cf0008bd652a4437ea807cbd Mon Sep 17 00:00:00 2001 From: Robin Naundorf Date: Fri, 17 Feb 2017 11:57:19 +0100 Subject: Add APIv4 /system/ping endpoint (#5443) --- api4/api.go | 1 + api4/system.go | 21 +++++++++++++++++++++ api4/system_test.go | 18 ++++++++++++++++++ model/client4.go | 13 +++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 api4/system.go create mode 100644 api4/system_test.go 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.. -- cgit v1.2.3-1-g7c22