From 0d19f9fa339daadfda7669d1df9c39f8b25683bd Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Fri, 21 Mar 2025 16:34:55 -0400 Subject: [PATCH] Slon/Api/V1/Accounts: Handle badly-behaved JSON API clients An array of String is still an array, even if it contains a single element. I'm looking at you, [Tuba](https://github.com/GeopJr/Tuba/blob/main/src/API/Relationship.vala#L48). Ref: https://docs.joinmastodon.org/methods/accounts/#relationships It shouldn't be our responsibility to handle this, but life isn't fair, so we'll begrudgingly handle it anyway. --- Slon/Api/V1/Accounts.HC | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Slon/Api/V1/Accounts.HC b/Slon/Api/V1/Accounts.HC index 4753dcf..9b6e0a5 100644 --- a/Slon/Api/V1/Accounts.HC +++ b/Slon/Api/V1/Accounts.HC @@ -158,7 +158,7 @@ U0 @slon_api_v1_accounts_get(SlonHttpSession* session) if (!StrICmp("relationships", session->path(3))) { if (@slon_api_authorized(session)) { JsonArray* relationships = Json.CreateArray(slon_mem_task); - JsonArray* relationship_of_ids = request_json->@("id"); + JsonArray* relationship_of_ids = Json.KeyValueAsArray(request_json->@("id", 1), slon_mem_task); JsonObject* target_account = NULL; if (relationship_of_ids) { for (i = 0; i < relationship_of_ids->length; i++) {