Various refactoring and typespec improvements
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -11,11 +11,23 @@ defmodule Mobilizon.Service.Workers.Background do
|
||||
use Mobilizon.Service.Workers.Helper, queue: "background"
|
||||
|
||||
@impl Oban.Worker
|
||||
@spec perform(Job.t()) ::
|
||||
{:ok, Actor.t()}
|
||||
| {:error,
|
||||
:actor_not_found | :bad_option_value_for_reserve_username | Ecto.Changeset.t()}
|
||||
def perform(%Job{args: %{"op" => "delete_actor", "actor_id" => actor_id} = args}) do
|
||||
with reserve_username when is_boolean(reserve_username) <-
|
||||
Map.get(args, "reserve_username", true),
|
||||
%Actor{} = actor <- Actors.get_actor(actor_id) do
|
||||
ActorSuspension.suspend_actor(actor, reserve_username: reserve_username)
|
||||
case Map.get(args, "reserve_username", true) do
|
||||
reserve_username when is_boolean(reserve_username) ->
|
||||
case Actors.get_actor(actor_id) do
|
||||
%Actor{} = actor ->
|
||||
ActorSuspension.suspend_actor(actor, reserve_username: reserve_username)
|
||||
|
||||
nil ->
|
||||
{:error, :actor_not_found}
|
||||
end
|
||||
|
||||
_ ->
|
||||
{:error, :bad_option_value_for_reserve_username}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user