# HG changeset patch # User Mikael Berthe # Date 1521455317 -3600 # Node ID c7b9ddaa41b9ff35109ac787b6c3ba271b25dbe4 # Parent 30bea35361cf7f4917766729f4edcc6acf40b425 Add PinStatus/UnpinStatus diff -r 30bea35361cf -r c7b9ddaa41b9 status.go --- 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