diff options
-rw-r--r-- | httpd.c | 8 | ||||
-rw-r--r-- | mastoapi.c | 16 | ||||
-rw-r--r-- | snac.h | 2 |
3 files changed, 26 insertions, 0 deletions
@@ -344,6 +344,14 @@ void httpd_connection(FILE *f) if (strcmp(method, "OPTIONS") == 0) { status = 200; } + else + if (strcmp(method, "DELETE") == 0) { +#ifndef NO_MASTODON_API + if (status == 0) + status = mastoapi_delete_handler(req, q_path, + &body, &b_size, &ctype); +#endif + } /* unattended? it's an error */ if (status == 0) { @@ -2484,6 +2484,22 @@ int mastoapi_post_handler(const xs_dict *req, const char *q_path, } +int mastoapi_delete_handler(const xs_dict *req, const char *q_path, + char **body, int *b_size, char **ctype) { + + if (!xs_startswith(q_path, "/api/v1/") && !xs_startswith(q_path, "/api/v2/")) + return 0; + + srv_debug(1, xs_fmt("mastoapi_delete_handler %s", q_path)); + xs *cmd = xs_replace_n(q_path, "/api", "", 1); + if (xs_startswith(cmd, "/v1/push/subscription") || xs_startswith(cmd, "/v2/push/subscription")) { /** **/ + // pretend we deleted it, since it doesn't exist anyway + return 200; + } + return 0; +} + + int mastoapi_put_handler(const xs_dict *req, const char *q_path, const char *payload, int p_size, char **body, int *b_size, char **ctype) @@ -312,6 +312,8 @@ int oauth_post_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype); int mastoapi_get_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype); +int mastoapi_delete_handler(const xs_dict *req, const char *q_path, + char **body, int *b_size, char **ctype); int mastoapi_post_handler(const xs_dict *req, const char *q_path, const char *payload, int p_size, char **body, int *b_size, char **ctype); |