X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Ftwitter_api%2Ftwitter_api_controller.ex;h=848ec218ff82c145b632a1b05b33d3d52aabcaf9;hb=c7be7a94544ef2dda687feea4d5c19ac06fc1d0e;hp=1a706029ae1b81fd92e30311b8f00bdc9b17d39a;hpb=59770c3f5c9a038dbde6b2e1cd1551a7b8f1672b;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 1a706029a..848ec218f 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -10,7 +10,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller do require Logger def verify_credentials(%{assigns: %{user: user}} = conn, _params) do - render(conn, UserView, "show.json", %{user: user}) + token = Phoenix.Token.sign(conn, "user socket", user.id) + render(conn, UserView, "show.json", %{user: user, token: token}) end def status_update(%{assigns: %{user: user}} = conn, %{"status" => _} = status_data) do @@ -206,7 +207,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller do def update_avatar(%{assigns: %{user: user}} = conn, params) do {:ok, object} = ActivityPub.upload(params) change = Changeset.change(user, %{avatar: object.data}) - {:ok, user} = Repo.update(change) + {:ok, user} = User.update_and_set_cache(change) + CommonAPI.update(user) render(conn, UserView, "show.json", %{user: user, for: user}) end @@ -215,7 +217,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller 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 + {:ok, user} <- User.update_and_set_cache(change) do + CommonAPI.update(user) %{"url" => [ %{ "href" => href } | _ ]} = object.data response = %{ url: href } |> Poison.encode! conn @@ -227,7 +230,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller 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 + {:ok, _user} <- User.update_and_set_cache(change) do %{"url" => [ %{ "href" => href } | _ ]} = object.data response = %{ url: href } |> Poison.encode! conn @@ -254,7 +257,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do mrn <- max(id, user.info["most_recent_notification"] || 0), updated_info <- Map.put(info, "most_recent_notification", mrn), changeset <- User.info_changeset(user, %{info: updated_info}), - {:ok, _user} <- Repo.update(changeset) do + {:ok, _user} <- User.update_and_set_cache(changeset) do conn |> json_reply(200, Poison.encode!(mrn)) else @@ -262,16 +265,18 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end end - def followers(%{assigns: %{user: user}} = conn, _params) do - with {:ok, followers} <- User.get_followers(user) do + def followers(conn, params) do + with {:ok, user} <- TwitterAPI.get_user(conn.assigns.user, params), + {:ok, followers} <- User.get_followers(user) do render(conn, UserView, "index.json", %{users: followers, for: user}) else _e -> bad_request_reply(conn, "Can't get followers") end end - def friends(%{assigns: %{user: user}} = conn, _params) do - with {:ok, friends} <- User.get_friends(user) do + def friends(conn, params) do + with {:ok, user} <- TwitterAPI.get_user(conn.assigns.user, params), + {:ok, friends} <- User.get_friends(user) do render(conn, UserView, "index.json", %{users: friends, for: user}) else _e -> bad_request_reply(conn, "Can't get friends") @@ -302,7 +307,8 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end with changeset <- User.update_changeset(user, params), - {:ok, user} <- Repo.update(changeset) do + {:ok, user} <- User.update_and_set_cache(changeset) do + CommonAPI.update(user) render(conn, UserView, "user.json", %{user: user, for: user}) else error ->