core: Better error handling for deleting users.
All checks were successful
Build Tilde Friends / Build-Docs (push) Successful in 2m36s
Build Tilde Friends / Build-All (push) Successful in 10m5s

This commit is contained in:
2025-12-09 18:10:47 -05:00
parent 2449202b5d
commit 192e9e0955

View File

@@ -1108,16 +1108,19 @@ static void _tf_ssb_delete_user_work(tf_ssb_t* ssb, void* user_data)
size_t length = strlen("user:") + strlen(work->user) + 1; size_t length = strlen("user:") + strlen(work->user) + 1;
char* buffer = alloca(length); char* buffer = alloca(length);
snprintf(buffer, length, "user:%s", work->user); snprintf(buffer, length, "user:%s", work->user);
tf_ssb_db_remove_property(ssb, "auth", buffer); work->completed = tf_ssb_db_remove_property(ssb, "auth", buffer) || work->completed;
tf_ssb_db_remove_value_from_array_property(ssb, "auth", "users", work->user); work->completed = tf_ssb_db_remove_value_from_array_property(ssb, "auth", "users", work->user) || work->completed;
work->completed = true;
} }
static void _tf_ssb_delete_user_after_work(tf_ssb_t* ssb, int status, void* user_data) static void _tf_ssb_delete_user_after_work(tf_ssb_t* ssb, int status, void* user_data)
{ {
delete_user_t* work = user_data; delete_user_t* work = user_data;
JSContext* context = tf_ssb_get_context(ssb); JSContext* context = tf_ssb_get_context(ssb);
JSValue error = JS_Call(context, work->promise[0], JS_UNDEFINED, 1, &work->result); if (!work->completed && JS_IsUndefined(work->result))
{
work->result = JS_NewString(context, "User not found.");
}
JSValue error = JS_Call(context, work->completed ? work->promise[0] : work->promise[1], JS_UNDEFINED, 1, &work->result);
JS_FreeValue(context, work->result); JS_FreeValue(context, work->result);
tf_util_report_error(context, error); tf_util_report_error(context, error);
JS_FreeValue(context, error); JS_FreeValue(context, error);