projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Handle "users/:id" links as well. Fix comments in MR.
[akkoma]
/
lib
/
pleroma
/
web
/
ostatus
/
ostatus_controller.ex
diff --git
a/lib/pleroma/web/ostatus/ostatus_controller.ex
b/lib/pleroma/web/ostatus/ostatus_controller.ex
index 2f92935e7c9f984a743f5d9bec862574c24cf80d..5dbee20e1c9429f112db4d8b0362ca9e2f31f070 100644
(file)
--- a/
lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/
lib/pleroma/web/ostatus/ostatus_controller.ex
@@
-1,7
+1,7
@@
defmodule Pleroma.Web.OStatus.OStatusController do
use Pleroma.Web, :controller
defmodule Pleroma.Web.OStatus.OStatusController do
use Pleroma.Web, :controller
- alias Pleroma.{User, Activity}
+ alias Pleroma.{User, Activity
, Object
}
alias Pleroma.Web.OStatus.{FeedRepresenter, ActivityRepresenter}
alias Pleroma.Repo
alias Pleroma.Web.{OStatus, Federator}
alias Pleroma.Web.OStatus.{FeedRepresenter, ActivityRepresenter}
alias Pleroma.Repo
alias Pleroma.Web.{OStatus, Federator}
@@
-16,7
+16,11
@@
defmodule Pleroma.Web.OStatus.OStatusController do
def feed_redirect(conn, %{"nickname" => nickname}) do
case get_format(conn) do
"html" ->
def feed_redirect(conn, %{"nickname" => nickname}) do
case get_format(conn) do
"html" ->
- Fallback.RedirectController.redirector(conn, nil)
+ with %User{} = user <- User.get_cached_by_nickname_or_id(nickname) do
+ Fallback.RedirectController.redirector_with_meta(conn, %{user: user})
+ else
+ nil -> {:error, :not_found}
+ end
"activity+json" ->
ActivityPubController.call(conn, :user)
"activity+json" ->
ActivityPubController.call(conn, :user)
@@
-134,9
+138,7
@@
defmodule Pleroma.Web.OStatus.OStatusController do
%User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
case format = get_format(conn) do
"html" ->
%User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
case format = get_format(conn) do
"html" ->
- conn
- |> put_resp_content_type("text/html")
- |> send_file(200, "priv/static/index.html")
+ Fallback.RedirectController.redirector_with_meta(conn, %{activity: activity, user: user})
_ ->
represent_activity(conn, format, activity, user)
_ ->
represent_activity(conn, format, activity, user)
@@
-153,10
+155,21
@@
defmodule Pleroma.Web.OStatus.OStatusController do
end
end
end
end
- defp represent_activity(conn, "activity+json", activity, user) do
+ defp represent_activity(
+ conn,
+ "activity+json",
+ %Activity{data: %{"type" => "Create"}} = activity,
+ _user
+ ) do
+ object = Object.normalize(activity.data["object"])
+
conn
|> put_resp_header("content-type", "application/activity+json")
conn
|> put_resp_header("content-type", "application/activity+json")
- |> json(ObjectView.render("object.json", %{object: activity}))
+ |> json(ObjectView.render("object.json", %{object: object}))
+ end
+
+ defp represent_activity(_conn, "activity+json", _, _) do
+ {:error, :not_found}
end
defp represent_activity(conn, _, activity, user) do
end
defp represent_activity(conn, _, activity, user) do