Merge branch 'develop' into 'nondiscoverable-user-metadata'
[akkoma] / lib / pleroma / web / common_api / common_api.ex
index 500c3883e9661f18edb444484431f9d38a299d73..a8c83bc8febdd054331b061da253f6f53ab38d34 100644 (file)
@@ -550,4 +550,21 @@ defmodule Pleroma.Web.CommonAPI do
   def show_reblogs(%User{} = user, %User{} = target) do
     UserRelationship.delete_reblog_mute(user, target)
   end
+
+  def get_user(ap_id, fake_record_fallback \\ true) do
+    cond do
+      user = User.get_cached_by_ap_id(ap_id) ->
+        user
+
+      user = User.get_by_guessed_nickname(ap_id) ->
+        user
+
+      fake_record_fallback ->
+        # TODO: refactor (fake records is never a good idea)
+        User.error_user(ap_id)
+
+      true ->
+        nil
+    end
+  end
 end