Merge pull request 'Improve support for Mona iOS app' (#100) from jamesoff/snac2:monaapp-support into master

Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/100
This commit is contained in:
grunfink 2024-01-11 17:46:15 +00:00
commit 285fb589ff
3 changed files with 31 additions and 0 deletions

View file

@ -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) {

View file

@ -1118,9 +1118,14 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
acct = xs_dict_append(acct, "acct", xs_dict_get(snac1.config, "uid"));
acct = xs_dict_append(acct, "display_name", xs_dict_get(snac1.config, "name"));
acct = xs_dict_append(acct, "created_at", xs_dict_get(snac1.config, "published"));
acct = xs_dict_append(acct, "last_status_at", xs_dict_get(snac1.config, "published"));
acct = xs_dict_append(acct, "note", xs_dict_get(snac1.config, "bio"));
acct = xs_dict_append(acct, "url", snac1.actor);
acct = xs_dict_append(acct, "header", "");
acct = xs_dict_append(acct, "header_static", "");
acct = xs_dict_append(acct, "locked", xs_stock_false);
// FIXME: check value of "type" to set this correctly?
acct = xs_dict_append(acct, "bot", xs_stock_false);
xs *src = xs_json_loads("{\"privacy\":\"public\","
"\"sensitive\":false,\"fields\":[],\"note\":\"\"}");
@ -2479,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)

2
snac.h
View file

@ -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);