summaryrefslogtreecommitdiff
path: root/mastoapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'mastoapi.c')
-rw-r--r--mastoapi.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/mastoapi.c b/mastoapi.c
index 31d71aa..25a01f9 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -863,7 +863,8 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
st = xs_dict_append(st, "poll", xs_stock_null);
st = xs_dict_append(st, "bookmarked", xs_stock_false);
- st = xs_dict_append(st, "pinned", xs_stock_false);
+
+ st = xs_dict_append(st, "pinned", is_pinned(snac, id) ? xs_stock_true : xs_stock_false);
return st;
}
@@ -1932,11 +1933,17 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
}
else
if (strcmp(op, "pin") == 0) { /** **/
- /* snac does not support pinning */
+ /* pin this message */
+ if (pin(&snac, id))
+ out = mastoapi_status(&snac, msg);
+ else
+ status = 422;
}
else
if (strcmp(op, "unpin") == 0) { /** **/
- /* snac does not support pinning */
+ /* unpin this message */
+ unpin(&snac, id);
+ out = mastoapi_status(&snac, msg);
}
else
if (strcmp(op, "mute") == 0) { /** **/