Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into develop
[akkoma] / lib / pleroma / web / ostatus / ostatus_controller.ex
index e6822463d534a1a44d20e1bdbb9f3153d3f8c29a..948996d01a36bbf9298a90059dcb6ecaaad1fa53 100644 (file)
@@ -44,10 +44,28 @@ defmodule Pleroma.Web.OStatus.OStatusController do
   end
 
   def object(conn, %{"uuid" => uuid}) do
-    id = o_status_url(conn, :object, uuid)
-    activity = Activity.get_create_activity_by_object_ap_id(id)
-    user = User.get_cached_by_ap_id(activity.data["actor"])
+    with id <- o_status_url(conn, :object, uuid),
+         %Activity{} = activity <- Activity.get_create_activity_by_object_ap_id(id),
+         %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
+      case get_format(conn) do
+        "html" -> redirect(conn, to: "/notice/#{activity.id}")
+        _ -> represent_activity(conn, activity, user)
+      end
+    end
+  end
+
+  def activity(conn, %{"uuid" => uuid}) do
+    with id <- o_status_url(conn, :activity, uuid),
+         %Activity{} = activity <- Activity.get_by_ap_id(id),
+         %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
+      case get_format(conn) do
+        "html" -> redirect(conn, to: "/notice/#{activity.id}")
+        _ -> represent_activity(conn, activity, user)
+      end
+    end
+  end
 
+  defp represent_activity(conn, activity, user) do
     response = activity
     |> ActivityRepresenter.to_simple_form(user, true)
     |> ActivityRepresenter.wrap_with_entry