--- 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
+}