diff options
author | Ariadne Conill <ariadne@dereferenced.org> | 2019-07-17 15:48:51 +0000 |
---|---|---|
committer | Ariadne Conill <ariadne@dereferenced.org> | 2019-07-17 16:03:05 +0000 |
commit | 4885473be2704d4d370fdb96e1473bc4eb9368f4 (patch) | |
tree | e5205f8a84b6b2baff5b4fa54ee7f59ab64dcf11 /lib/pleroma/user.ex | |
parent | ce73d5f6a53826c85e46bbe45835b99ceaab67cd (diff) | |
download | pleroma-4885473be2704d4d370fdb96e1473bc4eb9368f4.tar.gz |
user: refactor get_or_create_instance_user() into get_or_create_service_actor_by_id()
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index ffba3f390..463bb9ad4 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1157,19 +1157,18 @@ defmodule Pleroma.User do end end - def get_or_create_instance_user do - relay_uri = "#{Pleroma.Web.Endpoint.url()}/relay" - - if user = get_cached_by_ap_id(relay_uri) do + @doc "Creates an internal service actor by URI if missing. Optionally takes nickname for addressing." + def get_or_create_service_actor_by_ap_id(uri, nickname \\ nil) do + if user = get_cached_by_ap_id(uri) do user else changes = %User{info: %User.Info{}} |> cast(%{}, [:ap_id, :nickname, :local]) - |> put_change(:ap_id, relay_uri) - |> put_change(:nickname, nil) + |> put_change(:ap_id, uri) + |> put_change(:nickname, nickname) |> put_change(:local, true) - |> put_change(:follower_address, relay_uri <> "/followers") + |> put_change(:follower_address, uri <> "/followers") {:ok, user} = Repo.insert(changes) user |