Skip to content
Snippets Groups Projects
Unverified Commit aeaf22a2 authored by Thomas Citharel's avatar Thomas Citharel
Browse files

Set correct Content-Type on all AP endpoints


Closes #1210

Signed-off-by: default avatarThomas Citharel <tcit@tcit.fr>
parent 2e941476
No related branches found
No related tags found
No related merge requests found
......@@ -85,8 +85,9 @@ defmodule Mobilizon.Web.ActivityPubController do
actor = Map.get(conn.assigns, :actor)
if actor_applicant_group_member?(group, actor) do
json(
conn,
conn
|> put_resp_content_type("application/activity+json")
|> json(
ActorView.render("member.json", %{
member: member,
actor_applicant: actor
......@@ -168,7 +169,7 @@ defmodule Mobilizon.Web.ActivityPubController do
def relay(conn, _params) do
with {status, %Actor{} = actor} when status in [:commit, :ok] <- Cache.get_relay() do
conn
|> put_resp_header("content-type", "application/activity+json")
|> put_resp_content_type("application/activity+json")
|> json(ActorView.render("actor.json", %{actor: actor}))
end
end
......@@ -194,7 +195,7 @@ defmodule Mobilizon.Web.ActivityPubController do
page <- max(page, 1),
%Actor{} = actor <- Actors.get_local_actor_by_name_with_preload(name) do
conn
|> put_resp_header("content-type", "application/activity+json")
|> put_resp_content_type("application/activity+json")
|> json(
ActorView.render("#{collection}.json", %{
actor: actor,
......@@ -208,7 +209,7 @@ defmodule Mobilizon.Web.ActivityPubController do
defp actor_collection(conn, collection, %{"name" => name}) do
with %Actor{} = actor <- Actors.get_local_actor_by_name_with_preload(name) do
conn
|> put_resp_header("content-type", "application/activity+json")
|> put_resp_content_type("application/activity+json")
|> json(
ActorView.render("#{collection}.json", %{
actor: actor,
......
......@@ -141,11 +141,13 @@ defmodule Mobilizon.Web.PageController do
%Tombstone{} ->
conn
|> put_status(:gone)
|> maybe_add_content_type_header()
|> render(object_type, object: object)
_ ->
conn
|> maybe_add_noindex_header(object)
|> maybe_add_content_type_header()
|> render(object_type, object: object)
end
......@@ -199,4 +201,14 @@ defmodule Mobilizon.Web.PageController do
@spec is_person?(Actor.t()) :: boolean()
defp is_person?(%Actor{type: :Person}), do: true
defp is_person?(_), do: false
defp maybe_add_content_type_header(conn) do
case get_format(conn) do
"html" ->
conn
"activity-json" ->
put_resp_content_type(conn, "application/activity+json")
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment