Add MuteConversation, UnmuteConversation
authorMikael Berthe <mikael@lilotux.net>
Sat, 27 May 2017 19:47:08 +0200
changeset 188 5f4210c4921a
parent 187 e1b1f4a168b7
child 189 b0badf6ec8e8
Add MuteConversation, UnmuteConversation
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
+}