end
end
+ def maybe_follow(%User{} = follower, %User{info: info} = followed) do
+ if not following?(follower, followed) do
+ follow(follower, followed)
+ else
+ {:ok, follower}
+ end
+ end
+
def follow(%User{} = follower, %User{info: info} = followed) do
ap_followers = followed.follower_address
def get_follow_requests_query(%User{} = user) do
from(
a in Activity,
- where: fragment(
- "? ->> 'type' = 'Follow'",
- a.data
- ),
- where: fragment(
- "? ->> 'state' = 'pending'",
- a.data
- ),
- where: fragment(
- "? @> ?",
- a.data,
- ^%{"object" => user.ap_id}
- )
+ where:
+ fragment(
+ "? ->> 'type' = 'Follow'",
+ a.data
+ ),
+ where:
+ fragment(
+ "? ->> 'state' = 'pending'",
+ a.data
+ ),
+ where:
+ fragment(
+ "? @> ?",
+ a.data,
+ ^%{"object" => user.ap_id}
+ )
)
end
reqs = Repo.all(q)
users =
- Enum.map(reqs, fn (req) -> req.actor end)
- |> Enum.uniq
- |> Enum.map(fn (ap_id) -> get_by_ap_id(ap_id) end)
+ Enum.map(reqs, fn req -> req.actor end)
+ |> Enum.uniq()
+ |> Enum.map(fn ap_id -> get_by_ap_id(ap_id) end)
{:ok, users}
end