Slide 5
Slide 5 text
mkaszubowski94
def cancel_job(user_id, job_id) do
with {:ok, job} fetch_job(job_id),
:ok can_cancel?(job, user_id) do
job
Job.cancel_changeset(%{user_id: user_id, canceled_at: now()})
Repo.update()
else
nil {:error, :not_found}
{:error, :already_canceled} {:error, :already_canceled}
{:error, :already_completed} {:error, :already_completed}
{:error, :no_permissions} {:error, :no_permissions}
{:error, %Changeset{} = changeset} {:error, changeset}
end
end