end
def delete(%User{} = user, id) do
- with %Activity{data: %{"type" => _type}} <- Repo.get(Activity, id),
+ with %Activity{data: %{"type" => _type}} <- Activity.get_by_id(id),
{:ok, activity} <- CommonAPI.delete(id, user) do
{:ok, activity}
end
end
end
+ def subscribe(%User{} = subscriber, params) do
+ with {:ok, %User{} = subscribed} <- get_user(params),
+ {:ok, subscriber} <- User.subscribe(subscriber, subscribed) do
+ {:ok, subscriber, subscribed}
+ end
+ end
+
+ def unsubscribe(%User{} = unsubscriber, params) do
+ with {:ok, %User{} = unsubscribed} <- get_user(params),
+ {:ok, unsubscriber} <- User.unsubscribe(unsubscriber, unsubscribed) do
+ {:ok, unsubscriber, unsubscribed}
+ end
+ end
+
def repeat(%User{} = user, ap_id_or_id) do
with {:ok, _announce, %{data: %{"id" => id}}} <- CommonAPI.repeat(ap_id_or_id, user),
%Activity{} = activity <- Activity.get_create_by_object_ap_id(id) do
end
%{"screen_name" => nickname} ->
- case target = Repo.get_by(User, nickname: nickname) do
- nil ->
- {:error, "No user with such screen_name"}
-
- _ ->
- {:ok, target}
+ case User.get_by_nickname(nickname) do
+ nil -> {:error, "No user with such screen_name"}
+ target -> {:ok, target}
end
_ ->