end
end
- def feed(conn, %{"nickname" => nickname}) do
+ def feed(conn, %{"nickname" => nickname} = params) do
user = User.get_cached_by_nickname(nickname)
query = from activity in Activity,
where: fragment("?->>'actor' = ?", activity.data, ^user.ap_id),
order_by: [desc: :id]
activities = query
+ |> restrict_max(params)
|> Repo.all
response = user
end
end
+ defp restrict_max(query, %{"max_id" => max_id}) do
+ from activity in query, where: activity.id < ^max_id
+ end
+ defp restrict_max(query, _), do: query
+
def salmon_incoming(conn, _) do
{:ok, body, _conn} = read_body(conn)
{:ok, doc} = decode_or_retry(body)
end
end
+ def notice(conn, %{"id" => id}) do
+ with %Activity{} = activity <- Repo.get(Activity, id),
+ %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
+ case get_format(conn) do
+ "html" ->
+ conn
+ |> put_resp_content_type("text/html")
+ |> send_file(200, "priv/static/index.html")
+ _ -> represent_activity(conn, activity, user)
+ end
+ end
+ end
+
defp represent_activity(conn, activity, user) do
response = activity
|> ActivityRepresenter.to_simple_form(user, true)