Merge branch 'fix/emoji-api-nonsense' into 'develop'
authorlambda <lain@soykaf.club>
Wed, 10 Apr 2019 06:22:51 +0000 (06:22 +0000)
committerlambda <lain@soykaf.club>
Wed, 10 Apr 2019 06:22:51 +0000 (06:22 +0000)
Change response format of /api/pleroma/emoji so it makes sense

See merge request pleroma/pleroma!1038

docs/api/pleroma_api.md
lib/pleroma/web/twitter_api/controllers/util_controller.ex
test/web/twitter_api/util_controller_test.exs

index 05bcea1b6ad201486e61924dba5080da4afb3e88..a1ea41fe39b5103bcbbfccc4d38b026c2334af3a 100644 (file)
@@ -10,7 +10,29 @@ Request parameters can be passed via [query strings](https://en.wikipedia.org/wi
 * Authentication: not required
 * Params: none
 * Response: JSON
-* Example response: `[{"kalsarikannit_f":{"tags":["Finmoji"],"image_url":"/finmoji/128px/kalsarikannit_f-128.png"}},{"perkele":{"tags":["Finmoji"],"image_url":"/finmoji/128px/perkele-128.png"}},{"blobdab":{"tags":["SomeTag"],"image_url":"/emoji/blobdab.png"}},"happiness":{"tags":["Finmoji"],"image_url":"/finmoji/128px/happiness-128.png"}}]`
+* Example response:
+```json
+{
+  "girlpower": {
+    "tags": [
+      "Finmoji"
+    ],
+    "image_url": "/finmoji/128px/girlpower-128.png"
+  },
+  "education": {
+    "tags": [
+      "Finmoji"
+    ],
+    "image_url": "/finmoji/128px/education-128.png"
+  },
+  "finnishlove": {
+    "tags": [
+      "Finmoji"
+    ],
+    "image_url": "/finmoji/128px/finnishlove-128.png"
+  }
+}
+```
 * Note: Same data as Mastodon API’s `/api/v1/custom_emojis` but in a different format
 
 ## `/api/pleroma/follow_import`
index bb71742ec48c79f20398fc7d8b647318cb5b53de..d066d35f5c129b0463b9a094506c0f24b9553a63 100644 (file)
@@ -286,8 +286,9 @@ defmodule Pleroma.Web.TwitterAPI.UtilController do
     emoji =
       Emoji.get_all()
       |> Enum.map(fn {short_code, path, tags} ->
-        %{short_code => %{image_url: path, tags: String.split(tags, ",")}}
+        {short_code, %{image_url: path, tags: String.split(tags, ",")}}
       end)
+      |> Enum.into(%{})
 
     json(conn, emoji)
   end
index 01af8c1df76bdd2cd61fddc503187e3a4cecd57d..a4b3d651af1a2b5a491e90a3a1744d15431fec10 100644 (file)
@@ -193,22 +193,19 @@ defmodule Pleroma.Web.TwitterAPI.UtilControllerTest do
 
   describe "/api/pleroma/emoji" do
     test "returns json with custom emoji with tags", %{conn: conn} do
-      [emoji | _body] =
+      emoji =
         conn
         |> get("/api/pleroma/emoji")
         |> json_response(200)
 
-      [key] = Map.keys(emoji)
-
-      %{
-        ^key => %{
-          "image_url" => url,
-          "tags" => tags
-        }
-      } = emoji
-
-      assert is_binary(url)
-      assert is_list(tags)
+      assert Enum.all?(emoji, fn
+               {_key,
+                %{
+                  "image_url" => url,
+                  "tags" => tags
+                }} ->
+                 is_binary(url) and is_list(tags)
+             end)
     end
   end