Refactoring of Actors context
This commit is contained in:
@@ -15,7 +15,7 @@ defmodule Mix.Tasks.Mobilizon.CreateBot do
|
||||
Mix.Task.run("app.start")
|
||||
|
||||
with {:ok, %User{} = user} <- Users.get_user_by_email(email, true),
|
||||
actor <- Actors.register_bot_account(%{name: name, summary: summary}),
|
||||
actor <- Actors.register_bot(%{name: name, summary: summary}),
|
||||
{:ok, %Bot{} = bot} <-
|
||||
Actors.create_bot(%{
|
||||
"type" => type,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,8 +44,11 @@ defmodule Mobilizon.Actors.Follower do
|
||||
@spec ensure_url(Ecto.Changeset.t()) :: Ecto.Changeset.t()
|
||||
defp ensure_url(%Ecto.Changeset{data: %__MODULE__{url: nil}} = changeset) do
|
||||
case fetch_change(changeset, :url) do
|
||||
{:ok, _url} -> changeset
|
||||
:error -> generate_url(changeset)
|
||||
{:ok, _url} ->
|
||||
changeset
|
||||
|
||||
:error ->
|
||||
generate_url(changeset)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -86,8 +86,11 @@ defmodule Mobilizon.Addresses do
|
||||
|> filter_by_contry(Keyword.get(options, :country))
|
||||
|
||||
case Keyword.get(options, :single, false) do
|
||||
true -> Repo.one(query)
|
||||
false -> Repo.all(query)
|
||||
true ->
|
||||
Repo.one(query)
|
||||
|
||||
false ->
|
||||
Repo.all(query)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -75,8 +75,11 @@ defmodule Mobilizon.Media do
|
||||
|> Repo.transaction()
|
||||
|
||||
case transaction do
|
||||
{:ok, %{picture: %Picture{} = picture}} -> {:ok, picture}
|
||||
{:error, :remove, error, _} -> {:error, error}
|
||||
{:ok, %{picture: %Picture{} = picture}} ->
|
||||
{:ok, picture}
|
||||
|
||||
{:error, :remove, error, _} ->
|
||||
{:error, error}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -154,8 +154,11 @@ defmodule Mobilizon.Users.User do
|
||||
case changeset do
|
||||
%Ecto.Changeset{valid?: true, changes: %{email: email}} ->
|
||||
case EmailChecker.valid?(email) do
|
||||
false -> add_error(changeset, :email, "Email doesn't fit required format")
|
||||
true -> changeset
|
||||
false ->
|
||||
add_error(changeset, :email, "Email doesn't fit required format")
|
||||
|
||||
true ->
|
||||
changeset
|
||||
end
|
||||
|
||||
_ ->
|
||||
|
||||
@@ -59,8 +59,11 @@ defmodule Mobilizon.Users do
|
||||
query = user_by_email_query(email, activated)
|
||||
|
||||
case Repo.one(query) do
|
||||
nil -> {:error, :user_not_found}
|
||||
user -> {:ok, user}
|
||||
nil ->
|
||||
{:error, :user_not_found}
|
||||
|
||||
user ->
|
||||
{:ok, user}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -147,8 +150,11 @@ defmodule Mobilizon.Users do
|
||||
case actor do
|
||||
nil ->
|
||||
case get_actors_for_user(user) do
|
||||
[] -> nil
|
||||
actors -> hd(actors)
|
||||
[] ->
|
||||
nil
|
||||
|
||||
actors ->
|
||||
hd(actors)
|
||||
end
|
||||
|
||||
actor ->
|
||||
|
||||
@@ -32,7 +32,7 @@ defmodule MobilizonWeb.API.Follows do
|
||||
|
||||
def accept(%Actor{} = follower, %Actor{} = followed) do
|
||||
with %Follower{approved: false, id: follow_id, url: follow_url} = follow <-
|
||||
Actors.following?(follower, followed),
|
||||
Actors.is_following(follower, followed),
|
||||
activity_follow_url <- "#{MobilizonWeb.Endpoint.url()}/accept/follow/#{follow_id}",
|
||||
data <-
|
||||
ActivityPub.Utils.make_follow_data(followed, follower, follow_url),
|
||||
|
||||
@@ -9,7 +9,7 @@ defmodule MobilizonWeb.Resolvers.Member do
|
||||
Find members for group
|
||||
"""
|
||||
def find_members_for_group(%Actor{} = actor, _args, _resolution) do
|
||||
members = Actors.memberships_for_group(actor)
|
||||
members = Actors.list_members_for_group(actor)
|
||||
{:ok, members}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -207,7 +207,7 @@ defmodule MobilizonWeb.Resolvers.Person do
|
||||
# We check that the actor is not the last administrator/creator of a group
|
||||
@spec last_admin_of_a_group?(integer()) :: boolean()
|
||||
defp last_admin_of_a_group?(actor_id) do
|
||||
length(Actors.list_group_id_where_last_administrator(actor_id)) > 0
|
||||
length(Actors.list_group_ids_where_last_administrator(actor_id)) > 0
|
||||
end
|
||||
|
||||
@spec proxify_avatar(Actor.t()) :: Actor.t()
|
||||
|
||||
@@ -49,7 +49,7 @@ defmodule MobilizonWeb.ActivityPub.ActorView do
|
||||
def render("following.json", %{actor: actor, page: page}) do
|
||||
%{total: total, elements: following} =
|
||||
if Actor.is_public_visibility(actor),
|
||||
do: Actors.get_followings(actor, page),
|
||||
do: Actors.build_followings_for_actor(actor, page),
|
||||
else: @private_visibility_empty_collection
|
||||
|
||||
following
|
||||
@@ -60,7 +60,7 @@ defmodule MobilizonWeb.ActivityPub.ActorView do
|
||||
def render("following.json", %{actor: actor}) do
|
||||
%{total: total, elements: following} =
|
||||
if Actor.is_public_visibility(actor),
|
||||
do: Actors.get_followings(actor),
|
||||
do: Actors.build_followings_for_actor(actor),
|
||||
else: @private_visibility_empty_collection
|
||||
|
||||
%{
|
||||
@@ -75,7 +75,7 @@ defmodule MobilizonWeb.ActivityPub.ActorView do
|
||||
def render("followers.json", %{actor: actor, page: page}) do
|
||||
%{total: total, elements: followers} =
|
||||
if Actor.is_public_visibility(actor),
|
||||
do: Actors.get_followers(actor, page),
|
||||
do: Actors.build_followers_for_actor(actor, page),
|
||||
else: @private_visibility_empty_collection
|
||||
|
||||
followers
|
||||
@@ -86,7 +86,7 @@ defmodule MobilizonWeb.ActivityPub.ActorView do
|
||||
def render("followers.json", %{actor: actor}) do
|
||||
%{total: total, elements: followers} =
|
||||
if Actor.is_public_visibility(actor),
|
||||
do: Actors.get_followers(actor),
|
||||
do: Actors.build_followers_for_actor(actor),
|
||||
else: @private_visibility_empty_collection
|
||||
|
||||
%{
|
||||
|
||||
@@ -551,7 +551,7 @@ defmodule Mobilizon.Service.ActivityPub do
|
||||
|
||||
followers =
|
||||
if actor.followers_url in activity.recipients do
|
||||
Actors.get_full_external_followers(actor)
|
||||
Actors.list_external_followers_for_actor(actor)
|
||||
else
|
||||
[]
|
||||
end
|
||||
|
||||
@@ -17,7 +17,7 @@ defmodule Mobilizon.Service.ActivityPub.Relay do
|
||||
|
||||
def get_actor do
|
||||
with {:ok, %Actor{} = actor} <-
|
||||
Actors.get_or_create_service_actor_by_url("#{MobilizonWeb.Endpoint.url()}/relay") do
|
||||
Actors.get_or_create_actor_by_url("#{MobilizonWeb.Endpoint.url()}/relay") do
|
||||
actor
|
||||
end
|
||||
end
|
||||
|
||||
@@ -642,7 +642,7 @@ defmodule Mobilizon.Service.ActivityPub.Transmogrifier do
|
||||
defp get_follow(follow_object) do
|
||||
with follow_object_id when not is_nil(follow_object_id) <- Utils.get_url(follow_object),
|
||||
{:not_found, %Follower{} = follow} <-
|
||||
{:not_found, Actors.get_follow_by_url(follow_object_id)} do
|
||||
{:not_found, Actors.get_follower_by_url(follow_object_id)} do
|
||||
{:ok, follow}
|
||||
else
|
||||
{:not_found, _err} ->
|
||||
|
||||
Reference in New Issue
Block a user