X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Ftwitter_api%2Ftwitter_api_controller.ex;h=3ec54616a7995597de866b6e387f0b9cb98f3058;hb=2652d9e4edf34531057d472c6e23812873019fd5;hp=335cb3e7ce6780967ced94a849f8e4e3847ee090;hpb=5142a8efbbe7301c5d909393264ae62b51ff1bf2;p=akkoma diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 335cb3e7c..3ec54616a 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -2,7 +2,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do use Pleroma.Web, :controller alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView} alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter - alias Pleroma.{Repo, Activity, User} + alias Pleroma.{Repo, Activity, User, Object} alias Pleroma.Web.ActivityPub.ActivityPub alias Ecto.Changeset @@ -94,6 +94,17 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end end + def delete_post(%{assigns: %{user: user}} = conn, %{"id" => id}) do + with %Activity{data: %{"object" => %{"id" => object_id}}} <- Repo.get(Activity, id), + %Object{} = object <- Object.get_by_ap_id(object_id), + true <- user.ap_id == object.data["actor"], + {:ok, delete} <- ActivityPub.delete(object) |> IO.inspect do + json = ActivityRepresenter.to_json(delete, %{user: user, for: user}) + conn + |> json_reply(200, json) + end + end + def unfollow(%{assigns: %{user: user}} = conn, params) do case TwitterAPI.unfollow(user, params) do {:ok, user, unfollowed} -> @@ -190,6 +201,30 @@ defmodule Pleroma.Web.TwitterAPI.Controller do render(conn, UserView, "show.json", %{user: user, for: user}) end + def update_banner(%{assigns: %{user: user}} = conn, params) do + with {:ok, object} <- ActivityPub.upload(%{"img" => params["banner"]}), + new_info <- Map.put(user.info, "banner", object.data), + change <- User.info_changeset(user, %{info: new_info}), + {:ok, user} <- Repo.update(change) do + %{"url" => [ %{ "href" => href } | t ]} = object.data + response = %{ url: href } |> Poison.encode! + conn + |> json_reply(200, response) + end + end + + def update_background(%{assigns: %{user: user}} = conn, params) do + with {:ok, object} <- ActivityPub.upload(params), + new_info <- Map.put(user.info, "background", object.data), + change <- User.info_changeset(user, %{info: new_info}), + {:ok, user} <- Repo.update(change) do + %{"url" => [ %{ "href" => href } | t ]} = object.data + response = %{ url: href } |> Poison.encode! + conn + |> json_reply(200, response) + end + end + def external_profile(%{assigns: %{user: current_user}} = conn, %{"profileurl" => uri}) do with {:ok, user_map} <- TwitterAPI.get_external_profile(current_user, uri), response <- Poison.encode!(user_map) do @@ -229,8 +264,10 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end def update_profile(%{assigns: %{user: user}} = conn, params) do - if bio = params["description"] do - params = Map.put(params, "bio", bio) + params = if bio = params["description"] do + Map.put(params, "bio", bio) + else + params end with changeset <- User.update_changeset(user, params),