From 712061a445f461eeb90d9a1e289132f196c0cb27 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Thu, 5 Jan 2017 12:58:55 +0000 Subject: [PATCH] Add /versions endpoint --- client.go | 7 +++++++ responses.go | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/client.go b/client.go index c3a4d4e..f27bb1c 100644 --- a/client.go +++ b/client.go @@ -350,6 +350,13 @@ func (cli *Client) Login(req *ReqLogin, setOnClient bool) (resp *RespLogin, err return } +// Versions returns the list of supported Matrix versions on this homeserver. See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-versions +func (cli *Client) Versions() (resp *RespVersions, err error) { + urlPath := cli.BuildBaseURL("_matrix", "client", "versions") + _, err = cli.MakeRequest("GET", urlPath, nil, &resp) + return +} + // JoinRoom joins the client to a room ID or alias. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-join-roomidoralias // // If serverName is specified, this will be added as a query param to instruct the homeserver to join via that server. If content is specified, it will diff --git a/responses.go b/responses.go index 1cfd4e0..0997786 100644 --- a/responses.go +++ b/responses.go @@ -17,6 +17,11 @@ type RespCreateFilter struct { FilterID string `json:"filter_id"` } +// RespVersions is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-versions +type RespVersions struct { + Versions []string `json:"versions"` +} + // RespJoinRoom is the JSON response for http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-join type RespJoinRoom struct { RoomID string `json:"room_id"`