pack routes change
This commit is contained in:
parent
958008cc14
commit
8c6ec4c111
4 changed files with 97 additions and 83 deletions
|
@ -378,54 +378,41 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa
|
||||||
* Params: None
|
* Params: None
|
||||||
* Response: JSON, returns a list of Mastodon Conversation entities that were marked as read (200 - healthy, 503 unhealthy).
|
* Response: JSON, returns a list of Mastodon Conversation entities that were marked as read (200 - healthy, 503 unhealthy).
|
||||||
|
|
||||||
## `GET /api/pleroma/emoji/packs/import`
|
## `GET /api/pleroma/emoji/pack?name=:name`
|
||||||
|
|
||||||
### Imports packs from filesystem
|
### Get pack.json for the pack
|
||||||
|
|
||||||
* Method `GET`
|
* Method `GET`
|
||||||
* Authentication: required
|
* Authentication: not required
|
||||||
* Params: None
|
|
||||||
* Response: JSON, returns a list of imported packs.
|
|
||||||
|
|
||||||
## `GET /api/pleroma/emoji/packs/remote`
|
|
||||||
|
|
||||||
### Make request to another instance for packs list
|
|
||||||
|
|
||||||
* Method `GET`
|
|
||||||
* Authentication: required
|
|
||||||
* Params:
|
* Params:
|
||||||
* `url`: url of the instance to get packs from
|
* `page`: page number for files (default 1)
|
||||||
* Response: JSON with the pack list, hashmap with pack name and pack contents
|
* `page_size`: page size for files (default 30)
|
||||||
|
* Response: JSON, pack json with `files`, `files_count` and `pack` keys with 200 status or 404 if the pack does not exist.
|
||||||
|
|
||||||
## `POST /api/pleroma/emoji/packs/download`
|
```json
|
||||||
|
{
|
||||||
|
"files": {...},
|
||||||
|
"files_count": 0, // emoji count in pack
|
||||||
|
"pack": {...}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Download pack from another instance
|
## `POST /api/pleroma/emoji/pack?name=:name`
|
||||||
|
|
||||||
* Method `POST`
|
|
||||||
* Authentication: required
|
|
||||||
* Params:
|
|
||||||
* `url`: url of the instance to download from
|
|
||||||
* `name`: pack to download from that instance
|
|
||||||
* `as`: (*optional*) name how to save pack
|
|
||||||
* Response: JSON, "ok" with 200 status if the pack was downloaded, or 500 if there were
|
|
||||||
errors downloading the pack
|
|
||||||
|
|
||||||
## `POST /api/pleroma/emoji/packs/create?name=:name`
|
|
||||||
|
|
||||||
### Creates an empty pack
|
### Creates an empty pack
|
||||||
|
|
||||||
* Method `POST`
|
* Method `POST`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* Response: JSON, "ok" and 200 status or 409 if the pack with that name already exists
|
* Response: JSON, "ok" and 200 status or 409 if the pack with that name already exists
|
||||||
|
|
||||||
## `PATCH /api/pleroma/emoji/packs/update?name=:name`
|
## `PATCH /api/pleroma/emoji/pack?name=:name`
|
||||||
|
|
||||||
### Updates (replaces) pack metadata
|
### Updates (replaces) pack metadata
|
||||||
|
|
||||||
* Method `PATCH`
|
* Method `PATCH`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* `metadata`: metadata to replace the old one
|
* `metadata`: metadata to replace the old one
|
||||||
|
@ -438,22 +425,54 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa
|
||||||
* Response: JSON, updated "metadata" section of the pack and 200 status or 400 if there was a
|
* Response: JSON, updated "metadata" section of the pack and 200 status or 400 if there was a
|
||||||
problem with the new metadata (the error is specified in the "error" part of the response JSON)
|
problem with the new metadata (the error is specified in the "error" part of the response JSON)
|
||||||
|
|
||||||
## `DELETE /api/pleroma/emoji/packs/delete?name=:name`
|
## `DELETE /api/pleroma/emoji/pack?name=:name`
|
||||||
|
|
||||||
### Delete a custom emoji pack
|
### Delete a custom emoji pack
|
||||||
|
|
||||||
* Method `DELETE`
|
* Method `DELETE`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* Response: JSON, "ok" and 200 status or 500 if there was an error deleting the pack
|
* Response: JSON, "ok" and 200 status or 500 if there was an error deleting the pack
|
||||||
|
|
||||||
|
## `GET /api/pleroma/emoji/packs/import`
|
||||||
|
|
||||||
|
### Imports packs from filesystem
|
||||||
|
|
||||||
|
* Method `GET`
|
||||||
|
* Authentication: required (admin)
|
||||||
|
* Params: None
|
||||||
|
* Response: JSON, returns a list of imported packs.
|
||||||
|
|
||||||
|
## `GET /api/pleroma/emoji/packs/remote`
|
||||||
|
|
||||||
|
### Make request to another instance for packs list
|
||||||
|
|
||||||
|
* Method `GET`
|
||||||
|
* Authentication: required (admin)
|
||||||
|
* Params:
|
||||||
|
* `url`: url of the instance to get packs from
|
||||||
|
* Response: JSON with the pack list, hashmap with pack name and pack contents
|
||||||
|
|
||||||
|
## `POST /api/pleroma/emoji/packs/download`
|
||||||
|
|
||||||
|
### Download pack from another instance
|
||||||
|
|
||||||
|
* Method `POST`
|
||||||
|
* Authentication: required (admin)
|
||||||
|
* Params:
|
||||||
|
* `url`: url of the instance to download from
|
||||||
|
* `name`: pack to download from that instance
|
||||||
|
* `as`: (*optional*) name how to save pack
|
||||||
|
* Response: JSON, "ok" with 200 status if the pack was downloaded, or 500 if there were
|
||||||
|
errors downloading the pack
|
||||||
|
|
||||||
## `POST /api/pleroma/emoji/packs/files?name=:name`
|
## `POST /api/pleroma/emoji/packs/files?name=:name`
|
||||||
|
|
||||||
### Add new file to the pack
|
### Add new file to the pack
|
||||||
|
|
||||||
* Method `POST`
|
* Method `POST`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* `file`: file needs to be uploaded with the multipart request or link to remote file.
|
* `file`: file needs to be uploaded with the multipart request or link to remote file.
|
||||||
|
@ -466,7 +485,7 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa
|
||||||
### Update emoji file from pack
|
### Update emoji file from pack
|
||||||
|
|
||||||
* Method `PATCH`
|
* Method `PATCH`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* `shortcode`: emoji file shortcode
|
* `shortcode`: emoji file shortcode
|
||||||
|
@ -480,7 +499,7 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa
|
||||||
### Delete emoji file from pack
|
### Delete emoji file from pack
|
||||||
|
|
||||||
* Method `DELETE`
|
* Method `DELETE`
|
||||||
* Authentication: required
|
* Authentication: required (admin)
|
||||||
* Params:
|
* Params:
|
||||||
* `name`: pack name
|
* `name`: pack name
|
||||||
* `shortcode`: emoji file shortcode
|
* `shortcode`: emoji file shortcode
|
||||||
|
@ -507,25 +526,6 @@ The status posting endpoint takes an additional parameter, `in_reply_to_conversa
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## `GET /api/pleroma/emoji/packs/show?name=:name`
|
|
||||||
|
|
||||||
### Get pack.json for the pack
|
|
||||||
|
|
||||||
* Method `GET`
|
|
||||||
* Authentication: not required
|
|
||||||
* Params:
|
|
||||||
* `page`: page number for files (default 1)
|
|
||||||
* `page_size`: page size for files (default 30)
|
|
||||||
* Response: JSON, pack json with `files`, `files_count` and `pack` keys with 200 status or 404 if the pack does not exist.
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"files": {...},
|
|
||||||
"files_count": 0, // emoji count in pack
|
|
||||||
"pack": {...}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## `GET /api/pleroma/emoji/packs/archive?name=:name`
|
## `GET /api/pleroma/emoji/packs/archive?name=:name`
|
||||||
|
|
||||||
### Requests a local pack archive from the instance
|
### Requests a local pack archive from the instance
|
||||||
|
|
|
@ -245,7 +245,7 @@ defmodule Pleroma.Emoji.Pack do
|
||||||
|
|
||||||
with :ok <- validate_shareable_packs_available(uri),
|
with :ok <- validate_shareable_packs_available(uri),
|
||||||
{:ok, remote_pack} <-
|
{:ok, remote_pack} <-
|
||||||
uri |> URI.merge("/api/pleroma/emoji/packs/show?name=#{name}") |> http_get(),
|
uri |> URI.merge("/api/pleroma/emoji/pack?name=#{name}") |> http_get(),
|
||||||
{:ok, %{sha: sha, url: url} = pack_info} <- fetch_pack_info(remote_pack, uri, name),
|
{:ok, %{sha: sha, url: url} = pack_info} <- fetch_pack_info(remote_pack, uri, name),
|
||||||
{:ok, archive} <- download_archive(url, sha),
|
{:ok, archive} <- download_archive(url, sha),
|
||||||
pack <- copy_as(remote_pack, as || name),
|
pack <- copy_as(remote_pack, as || name),
|
||||||
|
@ -524,7 +524,7 @@ defmodule Pleroma.Emoji.Pack do
|
||||||
defp http_get(%URI{} = url), do: url |> to_string() |> http_get()
|
defp http_get(%URI{} = url), do: url |> to_string() |> http_get()
|
||||||
|
|
||||||
defp http_get(url) do
|
defp http_get(url) do
|
||||||
with {:ok, %{body: body}} <- url |> Pleroma.HTTP.get() do
|
with {:ok, %{body: body}} <- Pleroma.HTTP.get(url, [], pool: :default) do
|
||||||
Jason.decode(body)
|
Jason.decode(body)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -226,6 +226,20 @@ defmodule Pleroma.Web.Router do
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api/pleroma/emoji", Pleroma.Web.PleromaAPI do
|
scope "/api/pleroma/emoji", Pleroma.Web.PleromaAPI do
|
||||||
|
scope "/pack" do
|
||||||
|
pipe_through(:admin_api)
|
||||||
|
|
||||||
|
post("/", EmojiPackController, :create)
|
||||||
|
patch("/", EmojiPackController, :update)
|
||||||
|
delete("/", EmojiPackController, :delete)
|
||||||
|
end
|
||||||
|
|
||||||
|
scope "/pack" do
|
||||||
|
pipe_through(:api)
|
||||||
|
|
||||||
|
get("/", EmojiPackController, :show)
|
||||||
|
end
|
||||||
|
|
||||||
# Modifying packs
|
# Modifying packs
|
||||||
scope "/packs" do
|
scope "/packs" do
|
||||||
pipe_through(:admin_api)
|
pipe_through(:admin_api)
|
||||||
|
@ -246,8 +260,8 @@ defmodule Pleroma.Web.Router do
|
||||||
# Pack info / downloading
|
# Pack info / downloading
|
||||||
scope "/packs" do
|
scope "/packs" do
|
||||||
pipe_through(:api)
|
pipe_through(:api)
|
||||||
|
|
||||||
get("/", EmojiPackController, :index)
|
get("/", EmojiPackController, :index)
|
||||||
get("/show", EmojiPackController, :show)
|
|
||||||
get("/archive", EmojiPackController, :archive)
|
get("/archive", EmojiPackController, :archive)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -183,10 +183,10 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/show?name=test_pack"
|
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"
|
||||||
} ->
|
} ->
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=test_pack")
|
|> get("/api/pleroma/emoji/pack?name=test_pack")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|> json()
|
|> json()
|
||||||
|
|
||||||
|
@ -201,10 +201,10 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/show?name=test_pack_nonshared"
|
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack_nonshared"
|
||||||
} ->
|
} ->
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=test_pack_nonshared")
|
|> get("/api/pleroma/emoji/pack?name=test_pack_nonshared")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|> json()
|
|> json()
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
assert File.exists?("#{@emoji_path}/test_pack2/blank.png")
|
assert File.exists?("#{@emoji_path}/test_pack2/blank.png")
|
||||||
|
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> delete("/api/pleroma/emoji/packs/delete?name=test_pack2")
|
|> delete("/api/pleroma/emoji/pack?name=test_pack2")
|
||||||
|> json_response_and_validate_schema(200) == "ok"
|
|> json_response_and_validate_schema(200) == "ok"
|
||||||
|
|
||||||
refute File.exists?("#{@emoji_path}/test_pack2")
|
refute File.exists?("#{@emoji_path}/test_pack2")
|
||||||
|
@ -249,7 +249,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
assert File.exists?("#{@emoji_path}/test_pack_nonshared2/blank.png")
|
assert File.exists?("#{@emoji_path}/test_pack_nonshared2/blank.png")
|
||||||
|
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> delete("/api/pleroma/emoji/packs/delete?name=test_pack_nonshared2")
|
|> delete("/api/pleroma/emoji/pack?name=test_pack_nonshared2")
|
||||||
|> json_response_and_validate_schema(200) == "ok"
|
|> json_response_and_validate_schema(200) == "ok"
|
||||||
|
|
||||||
refute File.exists?("#{@emoji_path}/test_pack_nonshared2")
|
refute File.exists?("#{@emoji_path}/test_pack_nonshared2")
|
||||||
|
@ -289,7 +289,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/show?name=pack_bad_sha"
|
url: "https://example.com/api/pleroma/emoji/pack?name=pack_bad_sha"
|
||||||
} ->
|
} ->
|
||||||
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha")
|
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("pack_bad_sha")
|
||||||
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
||||||
|
@ -326,7 +326,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
%{
|
%{
|
||||||
method: :get,
|
method: :get,
|
||||||
url: "https://example.com/api/pleroma/emoji/packs/show?name=test_pack"
|
url: "https://example.com/api/pleroma/emoji/pack?name=test_pack"
|
||||||
} ->
|
} ->
|
||||||
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack")
|
{:ok, pack} = Pleroma.Emoji.Pack.load_pack("test_pack")
|
||||||
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
%Tesla.Env{status: 200, body: Jason.encode!(pack)}
|
||||||
|
@ -346,7 +346,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "PATCH /api/pleroma/emoji/packs/update?name=:name" do
|
describe "PATCH /api/pleroma/emoji/pack?name=:name" do
|
||||||
setup do
|
setup do
|
||||||
pack_file = "#{@emoji_path}/test_pack/pack.json"
|
pack_file = "#{@emoji_path}/test_pack/pack.json"
|
||||||
original_content = File.read!(pack_file)
|
original_content = File.read!(pack_file)
|
||||||
|
@ -368,7 +368,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
test "for a pack without a fallback source", ctx do
|
test "for a pack without a fallback source", ctx do
|
||||||
assert ctx[:admin_conn]
|
assert ctx[:admin_conn]
|
||||||
|> put_req_header("content-type", "multipart/form-data")
|
|> put_req_header("content-type", "multipart/form-data")
|
||||||
|> patch("/api/pleroma/emoji/packs/update?name=test_pack", %{
|
|> patch("/api/pleroma/emoji/pack?name=test_pack", %{
|
||||||
"metadata" => ctx[:new_data]
|
"metadata" => ctx[:new_data]
|
||||||
})
|
})
|
||||||
|> json_response_and_validate_schema(200) == ctx[:new_data]
|
|> json_response_and_validate_schema(200) == ctx[:new_data]
|
||||||
|
@ -396,7 +396,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
assert ctx[:admin_conn]
|
assert ctx[:admin_conn]
|
||||||
|> put_req_header("content-type", "multipart/form-data")
|
|> put_req_header("content-type", "multipart/form-data")
|
||||||
|> patch("/api/pleroma/emoji/packs/update?name=test_pack", %{metadata: new_data})
|
|> patch("/api/pleroma/emoji/pack?name=test_pack", %{metadata: new_data})
|
||||||
|> json_response_and_validate_schema(200) == new_data_with_sha
|
|> json_response_and_validate_schema(200) == new_data_with_sha
|
||||||
|
|
||||||
assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == new_data_with_sha
|
assert Jason.decode!(File.read!(ctx[:pack_file]))["pack"] == new_data_with_sha
|
||||||
|
@ -416,17 +416,17 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
assert ctx[:admin_conn]
|
assert ctx[:admin_conn]
|
||||||
|> put_req_header("content-type", "multipart/form-data")
|
|> put_req_header("content-type", "multipart/form-data")
|
||||||
|> patch("/api/pleroma/emoji/packs/update?name=test_pack", %{metadata: new_data})
|
|> patch("/api/pleroma/emoji/pack?name=test_pack", %{metadata: new_data})
|
||||||
|> json_response_and_validate_schema(:bad_request) == %{
|
|> json_response_and_validate_schema(:bad_request) == %{
|
||||||
"error" => "The fallback archive does not have all files specified in pack.json"
|
"error" => "The fallback archive does not have all files specified in pack.json"
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "POST/DELETE /api/pleroma/emoji/packs/?name=:name" do
|
describe "POST/DELETE /api/pleroma/emoji/pack?name=:name" do
|
||||||
test "creating and deleting a pack", %{admin_conn: admin_conn} do
|
test "creating and deleting a pack", %{admin_conn: admin_conn} do
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> post("/api/pleroma/emoji/packs/create?name=test_created")
|
|> post("/api/pleroma/emoji/pack?name=test_created")
|
||||||
|> json_response_and_validate_schema(200) == "ok"
|
|> json_response_and_validate_schema(200) == "ok"
|
||||||
|
|
||||||
assert File.exists?("#{@emoji_path}/test_created/pack.json")
|
assert File.exists?("#{@emoji_path}/test_created/pack.json")
|
||||||
|
@ -438,7 +438,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
}
|
}
|
||||||
|
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> delete("/api/pleroma/emoji/packs/delete?name=test_created")
|
|> delete("/api/pleroma/emoji/pack?name=test_created")
|
||||||
|> json_response_and_validate_schema(200) == "ok"
|
|> json_response_and_validate_schema(200) == "ok"
|
||||||
|
|
||||||
refute File.exists?("#{@emoji_path}/test_created/pack.json")
|
refute File.exists?("#{@emoji_path}/test_created/pack.json")
|
||||||
|
@ -451,7 +451,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
File.write!(Path.join(path, "pack.json"), pack_file)
|
File.write!(Path.join(path, "pack.json"), pack_file)
|
||||||
|
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> post("/api/pleroma/emoji/packs/create?name=test_created")
|
|> post("/api/pleroma/emoji/pack?name=test_created")
|
||||||
|> json_response_and_validate_schema(:conflict) == %{
|
|> json_response_and_validate_schema(:conflict) == %{
|
||||||
"error" => "A pack named \"test_created\" already exists"
|
"error" => "A pack named \"test_created\" already exists"
|
||||||
}
|
}
|
||||||
|
@ -461,7 +461,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
test "with empty name", %{admin_conn: admin_conn} do
|
test "with empty name", %{admin_conn: admin_conn} do
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> post("/api/pleroma/emoji/packs/create?name= ")
|
|> post("/api/pleroma/emoji/pack?name= ")
|
||||||
|> json_response_and_validate_schema(:bad_request) == %{
|
|> json_response_and_validate_schema(:bad_request) == %{
|
||||||
"error" => "pack name cannot be empty"
|
"error" => "pack name cannot be empty"
|
||||||
}
|
}
|
||||||
|
@ -470,7 +470,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
test "deleting nonexisting pack", %{admin_conn: admin_conn} do
|
test "deleting nonexisting pack", %{admin_conn: admin_conn} do
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> delete("/api/pleroma/emoji/packs/delete?name=non_existing")
|
|> delete("/api/pleroma/emoji/pack?name=non_existing")
|
||||||
|> json_response_and_validate_schema(:not_found) == %{
|
|> json_response_and_validate_schema(:not_found) == %{
|
||||||
"error" => "Pack non_existing does not exist"
|
"error" => "Pack non_existing does not exist"
|
||||||
}
|
}
|
||||||
|
@ -478,7 +478,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
test "deleting with empty name", %{admin_conn: admin_conn} do
|
test "deleting with empty name", %{admin_conn: admin_conn} do
|
||||||
assert admin_conn
|
assert admin_conn
|
||||||
|> delete("/api/pleroma/emoji/packs/delete?name= ")
|
|> delete("/api/pleroma/emoji/pack?name= ")
|
||||||
|> json_response_and_validate_schema(:bad_request) == %{
|
|> json_response_and_validate_schema(:bad_request) == %{
|
||||||
"error" => "pack name cannot be empty"
|
"error" => "pack name cannot be empty"
|
||||||
}
|
}
|
||||||
|
@ -526,7 +526,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "GET /api/pleroma/emoji/packs/:name" do
|
describe "GET /api/pleroma/emoji/pack?name=:name" do
|
||||||
test "shows pack.json", %{conn: conn} do
|
test "shows pack.json", %{conn: conn} do
|
||||||
assert %{
|
assert %{
|
||||||
"files" => files,
|
"files" => files,
|
||||||
|
@ -541,7 +541,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
}
|
}
|
||||||
} =
|
} =
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=test_pack")
|
|> get("/api/pleroma/emoji/pack?name=test_pack")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
assert files == %{"blank" => "blank.png", "blank2" => "blank2.png"}
|
assert files == %{"blank" => "blank.png", "blank2" => "blank2.png"}
|
||||||
|
@ -551,7 +551,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
"files_count" => 2
|
"files_count" => 2
|
||||||
} =
|
} =
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=test_pack&page_size=1")
|
|> get("/api/pleroma/emoji/pack?name=test_pack&page_size=1")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
assert files |> Map.keys() |> length() == 1
|
assert files |> Map.keys() |> length() == 1
|
||||||
|
@ -561,7 +561,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
"files_count" => 2
|
"files_count" => 2
|
||||||
} =
|
} =
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=test_pack&page_size=1&page=2")
|
|> get("/api/pleroma/emoji/pack?name=test_pack&page_size=1&page=2")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
|
|
||||||
assert files |> Map.keys() |> length() == 1
|
assert files |> Map.keys() |> length() == 1
|
||||||
|
@ -581,13 +581,13 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
}
|
}
|
||||||
} =
|
} =
|
||||||
conn
|
conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=blobs.gg")
|
|> get("/api/pleroma/emoji/pack?name=blobs.gg")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "non existing pack", %{conn: conn} do
|
test "non existing pack", %{conn: conn} do
|
||||||
assert conn
|
assert conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name=non_existing")
|
|> get("/api/pleroma/emoji/pack?name=non_existing")
|
||||||
|> json_response_and_validate_schema(:not_found) == %{
|
|> json_response_and_validate_schema(:not_found) == %{
|
||||||
"error" => "Pack non_existing does not exist"
|
"error" => "Pack non_existing does not exist"
|
||||||
}
|
}
|
||||||
|
@ -595,7 +595,7 @@ defmodule Pleroma.Web.PleromaAPI.EmojiPackControllerTest do
|
||||||
|
|
||||||
test "error name", %{conn: conn} do
|
test "error name", %{conn: conn} do
|
||||||
assert conn
|
assert conn
|
||||||
|> get("/api/pleroma/emoji/packs/show?name= ")
|
|> get("/api/pleroma/emoji/pack?name= ")
|
||||||
|> json_response_and_validate_schema(:bad_request) == %{
|
|> json_response_and_validate_schema(:bad_request) == %{
|
||||||
"error" => "pack name cannot be empty"
|
"error" => "pack name cannot be empty"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue