Browse Source

Change response format of /api/pleroma/emoji to the one that actually makes sense

tags/v1.1.4
rinpatch 5 years ago
parent
commit
b57b43027c
3 changed files with 34 additions and 14 deletions
  1. +23
    -1
      docs/api/pleroma_api.md
  2. +2
    -1
      lib/pleroma/web/twitter_api/controllers/util_controller.ex
  3. +9
    -12
      test/web/twitter_api/util_controller_test.exs

+ 23
- 1
docs/api/pleroma_api.md View 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`


+ 2
- 1
lib/pleroma/web/twitter_api/controllers/util_controller.ex View 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


+ 9
- 12
test/web/twitter_api/util_controller_test.exs View File

@@ -172,22 +172,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



Loading…
Cancel
Save