diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-03-20 21:30:44 +0100 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-03-20 21:30:44 +0100 |
commit | 093fd1832dd9e8137e28932fe167bcdc7e228366 (patch) | |
tree | 77f266584292d8090b931ca47a838bb4902d4d6e /lib | |
parent | 980717fdceb39235a3f1e7f6e76d1828630f1989 (diff) | |
download | pleroma-093fd1832dd9e8137e28932fe167bcdc7e228366.tar.gz |
Add Twitter API verify_credentials endpoint.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/router.ex | 16 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 18 |
2 files changed, 33 insertions, 1 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index e0f1ac12f..83e4253ce 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -1,11 +1,25 @@ defmodule Pleroma.Web.Router do use Pleroma.Web, :router + alias Pleroma.{Repo, User} + + def user_fetcher(username) do + {:ok, Repo.get_by(User, %{nickname: username})} + end + pipeline :api do plug :accepts, ["json"] end + pipeline :authenticated_api do + plug :accepts, ["json"] + plug :fetch_session + plug Pleroma.Plugs.AuthenticationPlug, fetcher: &Pleroma.Web.Router.user_fetcher/1 + end + scope "/api", Pleroma.Web do - pipe_through :api + pipe_through :authenticated_api + + post "/account/verify_credentials.json", TwitterAPI.Controller, :verify_credentials end end diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex new file mode 100644 index 000000000..836013cff --- /dev/null +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -0,0 +1,18 @@ +defmodule Pleroma.Web.TwitterAPI.Controller do + use Pleroma.Web, :controller + + alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter + + def verify_credentials(%{assigns: %{user: user}} = conn, _params) do + response = user |> UserRepresenter.to_json + + conn + |> json_reply(200, response) + end + + defp json_reply(conn, status, json) do + conn + |> put_resp_content_type("application/json") + |> send_resp(status, json) + end +end |