use Pleroma.Web, :controller
alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView}
alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
- alias Pleroma.{Web, Repo, Activity}
+ alias Pleroma.{Repo, Activity}
alias Pleroma.Web.ActivityPub.ActivityPub
alias Ecto.Changeset
|> send_resp(200, response)
end
- def help_test(conn, _params) do
- conn |> json_reply(200, Poison.encode!("ok"))
- end
-
def upload_json(conn, %{"media" => media}) do
response = TwitterAPI.upload(media, "json")
conn
|> json_reply(200, response)
end
- def config(conn, _params) do
- response = %{
- site: %{
- name: Web.base_url,
- server: Web.base_url,
- textlimit: -1
- }
- }
- |> Poison.encode!
-
- conn
- |> json_reply(200, response)
+ def get_by_id_or_ap_id(id) do
+ Repo.get(Activity, id) || Activity.get_create_activity_by_object_ap_id(id)
end
def favorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do
- activity = Repo.get(Activity, id)
+ activity = get_by_id_or_ap_id(id)
{:ok, status} = TwitterAPI.favorite(user, activity)
response = Poison.encode!(status)
end
def unfavorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do
- activity = Repo.get(Activity, id)
+ activity = get_by_id_or_ap_id(id)
{:ok, status} = TwitterAPI.unfavorite(user, activity)
response = Poison.encode!(status)
end
def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do
- activity = Repo.get(Activity, id)
+ activity = get_by_id_or_ap_id(id)
if activity.data["actor"] == user.ap_id do
bad_request_reply(conn, "You cannot repeat your own notice.")
else