--- a/status.go Sun Mar 18 23:30:43 2018 +0100
+++ b/status.go Mon Mar 19 11:28:37 2018 +0100
@@ -78,8 +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",
-// mute or unmute (for conversations).
+// (for deleting a status), "reblog"/"unreblog", "favourite"/"unfavourite",
+// "mute"/"unmute" (for conversations) or "pin"/"unpin".
// 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
@@ -112,7 +112,7 @@
return ErrInvalidID
}
endPoint += "/" + strconv.FormatInt(opts.ID, 10) + "/" + op
- case "mute", "unmute":
+ case "mute", "unmute", "pin", "unpin":
if opts.ID < 1 {
return ErrInvalidID
}
@@ -257,6 +257,22 @@
return err
}
+// PinStatus pins a status
+func (mc *Client) PinStatus(statusID int64) error {
+ var status Status
+ o := updateStatusOptions{ID: statusID}
+ err := mc.updateStatusData("pin", o, &status)
+ return err
+}
+
+// UnpinStatus unpins a status
+func (mc *Client) UnpinStatus(statusID int64) error {
+ var status Status
+ o := updateStatusOptions{ID: statusID}
+ err := mc.updateStatusData("unpin", o, &status)
+ return err
+}
+
// MuteConversation mutes the conversation containing a status
func (mc *Client) MuteConversation(statusID int64) (*Status, error) {
var status Status