commit: c8440b5e0c97c5d5c03e4b99e30a61df6ab95319
parent: 0ab563d3341f7cf9bb3e9f85a869499701cbb7d9
Author: lambda <lain@soykaf.club>
Date: Wed, 10 Apr 2019 06:22:51 +0000
Merge branch 'fix/emoji-api-nonsense' into 'develop'
Change response format of /api/pleroma/emoji so it makes sense
See merge request pleroma/pleroma!1038
Diffstat:
3 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/docs/api/pleroma_api.md b/docs/api/pleroma_api.md
@@ -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`
diff --git a/lib/pleroma/web/twitter_api/controllers/util_controller.ex b/lib/pleroma/web/twitter_api/controllers/util_controller.ex
@@ -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
diff --git a/test/web/twitter_api/util_controller_test.exs b/test/web/twitter_api/util_controller_test.exs
@@ -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