From fe205c7430109d5570d4bcd12b50bd1538de3cfa Mon Sep 17 00:00:00 2001 From: qua3k Date: Sat, 1 Jan 2022 13:19:24 -0500 Subject: [PATCH 1/2] Pass in filter to `/messages` as param --- client.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/client.go b/client.go index 64965590..1c0f9c79 100644 --- a/client.go +++ b/client.go @@ -1273,16 +1273,17 @@ func (cli *Client) JoinedRooms() (resp *RespJoinedRooms, err error) { // Messages returns a list of message and state events for a room. It uses // pagination query parameters to paginate history in the room. // See https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-rooms-roomid-messages -func (cli *Client) Messages(roomID id.RoomID, from, to string, dir rune, limit int) (resp *RespMessages, err error) { - filter := cli.Syncer.GetFilterJSON(cli.UserID) - filterJSON, err := json.Marshal(filter) - if err != nil { - return nil, err - } +func (cli *Client) Messages(roomID id.RoomID, filter *Filter, from, to string, dir rune, limit int) (resp *RespMessages, err error) { query := map[string]string{ - "from": from, - "dir": string(dir), - "filter": string(filterJSON), + "from": from, + "dir": string(dir), + } + if filter != nil { + filterJSON, err := json.Marshal(filter) + if err != nil { + return nil, err + } + query["filter"] = string(filterJSON) } if to != "" { query["to"] = to From 7f877412b5994992361046872ad3f1189db90941 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Sat, 1 Jan 2022 21:58:21 +0200 Subject: [PATCH 2/2] Move `filter` param to after semi-required params in `Messages` --- client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client.go b/client.go index 1c0f9c79..f961ad49 100644 --- a/client.go +++ b/client.go @@ -1273,7 +1273,7 @@ func (cli *Client) JoinedRooms() (resp *RespJoinedRooms, err error) { // Messages returns a list of message and state events for a room. It uses // pagination query parameters to paginate history in the room. // See https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-rooms-roomid-messages -func (cli *Client) Messages(roomID id.RoomID, filter *Filter, from, to string, dir rune, limit int) (resp *RespMessages, err error) { +func (cli *Client) Messages(roomID id.RoomID, from, to string, dir rune, filter *Filter, limit int) (resp *RespMessages, err error) { query := map[string]string{ "from": from, "dir": string(dir),