summaryrefslogtreecommitdiff
path: root/mastoapi.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-08-29 08:11:30 +0200
committerdefault <nobody@localhost>2024-08-29 08:11:30 +0200
commit54520f0411658ae37d6115d69c056dd1af3b7fb9 (patch)
tree56f390cda81c3cf22b4b09a00ac168f5cb603990 /mastoapi.c
parent67f0efa689b47870554cb5aeb401fa406b958114 (diff)
mastoapi: added support for [un]bookmarking.
Diffstat (limited to 'mastoapi.c')
-rw-r--r--mastoapi.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/mastoapi.c b/mastoapi.c
index f004587..069d823 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -1061,7 +1061,8 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
else
st = xs_dict_append(st, "poll", xs_stock(XSTYPE_NULL));
- st = xs_dict_append(st, "bookmarked", xs_stock(XSTYPE_FALSE));
+ st = xs_dict_append(st, "bookmarked",
+ (snac && is_bookmarked(snac, id)) ? xs_stock(XSTYPE_TRUE) : xs_stock(XSTYPE_FALSE));
st = xs_dict_append(st, "pinned",
(snac && is_pinned(snac, id)) ? xs_stock(XSTYPE_TRUE) : xs_stock(XSTYPE_FALSE));
@@ -2570,16 +2571,22 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path,
}
else
if (strcmp(op, "bookmark") == 0) { /** **/
- /* snac does not support bookmarks */
+ /* bookmark this message */
+ if (bookmark(&snac, id) == 0)
+ out = mastoapi_status(&snac, msg);
+ else
+ status = HTTP_STATUS_UNPROCESSABLE_CONTENT;
}
else
if (strcmp(op, "unbookmark") == 0) { /** **/
- /* snac does not support bookmarks */
+ /* unbookmark this message */
+ unbookmark(&snac, id);
+ out = mastoapi_status(&snac, msg);
}
else
if (strcmp(op, "pin") == 0) { /** **/
/* pin this message */
- if (pin(&snac, id))
+ if (pin(&snac, id) == 0)
out = mastoapi_status(&snac, msg);
else
status = HTTP_STATUS_UNPROCESSABLE_CONTENT;