implemented
This commit is contained in:
parent
2651058fa4
commit
93aa563cfe
3 changed files with 53 additions and 1 deletions
3
changelog.d/siteinfo-baseurls.add
Normal file
3
changelog.d/siteinfo-baseurls.add
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add `base_urls` to the /api/v1/instance pleroma metadata which provides information about the base URLs for media_proxy and uploads when configured
|
||||||
|
|
@ -261,6 +261,21 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp pleroma_configuration(instance) do
|
defp pleroma_configuration(instance) do
|
||||||
|
base_urls = %{}
|
||||||
|
|
||||||
|
base_urls =
|
||||||
|
if Config.get([:media_proxy, :enabled]) do
|
||||||
|
Map.put(base_urls, :media_proxy, Config.get([:media_proxy, :base_url]))
|
||||||
|
else
|
||||||
|
base_urls
|
||||||
|
end
|
||||||
|
|
||||||
|
base_urls =
|
||||||
|
case Config.get([Pleroma.Upload, :base_url]) do
|
||||||
|
nil -> base_urls
|
||||||
|
url -> Map.put(base_urls, :upload, url)
|
||||||
|
end
|
||||||
|
|
||||||
%{
|
%{
|
||||||
metadata: %{
|
metadata: %{
|
||||||
account_activation_required: Keyword.get(instance, :account_activation_required),
|
account_activation_required: Keyword.get(instance, :account_activation_required),
|
||||||
|
|
@ -270,7 +285,8 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do
|
||||||
post_formats: Config.get([:instance, :allowed_post_formats]),
|
post_formats: Config.get([:instance, :allowed_post_formats]),
|
||||||
birthday_required: Config.get([:instance, :birthday_required]),
|
birthday_required: Config.get([:instance, :birthday_required]),
|
||||||
birthday_min_age: Config.get([:instance, :birthday_min_age]),
|
birthday_min_age: Config.get([:instance, :birthday_min_age]),
|
||||||
translation: supported_languages()
|
translation: supported_languages(),
|
||||||
|
base_urls: base_urls
|
||||||
},
|
},
|
||||||
stats: %{mau: Pleroma.User.active_user_count()},
|
stats: %{mau: Pleroma.User.active_user_count()},
|
||||||
vapid_public_key: Keyword.get(Pleroma.Web.Push.vapid_config(), :public_key)
|
vapid_public_key: Keyword.get(Pleroma.Web.Push.vapid_config(), :public_key)
|
||||||
|
|
|
||||||
|
|
@ -161,4 +161,37 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do
|
||||||
|> get("/api/v1/instance/translation_languages")
|
|> get("/api/v1/instance/translation_languages")
|
||||||
|> json_response_and_validate_schema(200)
|
|> json_response_and_validate_schema(200)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "base_urls in pleroma metadata", %{conn: conn} do
|
||||||
|
media_proxy_base_url = "https://media.example.org"
|
||||||
|
upload_base_url = "https://uploads.example.org"
|
||||||
|
|
||||||
|
clear_config([:media_proxy, :enabled], true)
|
||||||
|
clear_config([:media_proxy, :base_url], media_proxy_base_url)
|
||||||
|
clear_config([Pleroma.Upload, :base_url], upload_base_url)
|
||||||
|
|
||||||
|
conn = get(conn, "/api/v1/instance")
|
||||||
|
|
||||||
|
assert result = json_response_and_validate_schema(conn, 200)
|
||||||
|
assert result["pleroma"]["metadata"]["base_urls"]["media_proxy"] == media_proxy_base_url
|
||||||
|
assert result["pleroma"]["metadata"]["base_urls"]["upload"] == upload_base_url
|
||||||
|
|
||||||
|
# Test when media_proxy is disabled
|
||||||
|
clear_config([:media_proxy, :enabled], false)
|
||||||
|
|
||||||
|
conn = get(conn, "/api/v1/instance")
|
||||||
|
|
||||||
|
assert result = json_response_and_validate_schema(conn, 200)
|
||||||
|
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "media_proxy")
|
||||||
|
assert result["pleroma"]["metadata"]["base_urls"]["upload"] == upload_base_url
|
||||||
|
|
||||||
|
# Test when upload base_url is not set
|
||||||
|
clear_config([Pleroma.Upload, :base_url], nil)
|
||||||
|
|
||||||
|
conn = get(conn, "/api/v1/instance")
|
||||||
|
|
||||||
|
assert result = json_response_and_validate_schema(conn, 200)
|
||||||
|
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "media_proxy")
|
||||||
|
refute Map.has_key?(result["pleroma"]["metadata"]["base_urls"], "upload")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue