# HG changeset patch # User Mikael Berthe # Date 1495907228 -7200 # Node ID 5f4210c4921af1fbbe02772572686f3e4e54c9b7 # Parent e1b1f4a168b71bf4ef86ef0cc7cd64cc20934ea3 Add MuteConversation, UnmuteConversation diff -r e1b1f4a168b7 -r 5f4210c4921a status.go --- a/status.go Sat May 27 19:12:01 2017 +0200 +++ b/status.go Sat May 27 19:47:08 2017 +0200 @@ -78,7 +78,8 @@ // updateStatusData updates the statuses // The operation 'op' can be empty or "status" (to post a status), "delete" -// (for deleting a status), "reblog", "unreblog", "favourite", "unfavourite". +// (for deleting a status), "reblog", "unreblog", "favourite", "unfavourite", +// mute or unmute (for conversations). // The data argument will receive the object(s) returned by the API server. func (mc *Client) updateStatusData(op string, opts updateStatusOptions, data interface{}) error { method := rest.Post @@ -111,6 +112,11 @@ return ErrInvalidID } endPoint += "/" + strconv.FormatInt(opts.ID, 10) + "/" + op + case "mute", "unmute": + if opts.ID < 1 { + return ErrInvalidID + } + endPoint += "/" + strconv.FormatInt(opts.ID, 10) + "/" + op default: return ErrInvalidParameter } @@ -250,3 +256,19 @@ err := mc.updateStatusData("unfavourite", o, &status) return err } + +// MuteConversation mutes the conversation containing a status +func (mc *Client) MuteConversation(statusID int64) (*Status, error) { + var status Status + o := updateStatusOptions{ID: statusID} + err := mc.updateStatusData("mute", o, &status) + return &status, err +} + +// UnmuteConversation unmutes the conversation containing a status +func (mc *Client) UnmuteConversation(statusID int64) (*Status, error) { + var status Status + o := updateStatusOptions{ID: statusID} + err := mc.updateStatusData("unmute", o, &status) + return &status, err +}