Slight cleanup.

This commit is contained in:
Roger Braun 2017-09-07 08:58:10 +02:00
parent 2a298d70f9
commit 2652d9e4ed
8 changed files with 55 additions and 41 deletions

View file

@ -1,6 +1,9 @@
defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
use Pleroma.Web, :controller
alias Pleroma.{Repo, App}
alias Pleroma.{Repo}
alias Pleroma.Web.OAuth.App
alias Pleroma.Web
alias Pleroma.Web.MastodonAPI.AccountView
def create_app(conn, params) do
with cs <- App.register_changeset(%App{}, params) |> IO.inspect,
@ -16,17 +19,18 @@ def create_app(conn, params) do
end
def verify_credentials(%{assigns: %{user: user}} = conn, params) do
account = %{
id: user.id,
username: user.nickname,
acct: user.nickname,
display_name: user.name,
locked: false,
created_at: user.inserted_at,
note: user.bio,
url: ""
}
account = AccountView.render("account.json", %{user: user})
json(conn, account)
end
def masto_instance(conn, _params) do
response = %{
uri: Web.base_url,
title: Web.base_url,
description: "A Pleroma instance, an alternative fediverse server",
version: "Pleroma Dev"
}
json(conn, response)
end
end

View file

@ -0,0 +1,27 @@
defmodule Pleroma.Web.MastodonAPI.AccountView do
use Pleroma.Web, :view
alias Pleroma.User
def render("account.json", %{user: user}) do
image = User.avatar_url(user)
user_info = User.user_info(user)
%{
id: user.id,
username: user.nickname,
acct: user.nickname,
display_name: user.name,
locked: false,
created_at: user.inserted_at,
followers_count: user_info.follower_count,
following_count: user_info.following_count,
statuses_count: user_info.note_count,
note: user.bio,
url: user.ap_id,
avatar: image,
avatar_static: image,
header: "",
header_static: ""
}
end
end

View file

@ -1,4 +1,4 @@
defmodule Pleroma.App do
defmodule Pleroma.Web.OAuth.App do
use Ecto.Schema
import Ecto.{Changeset}

View file

@ -1,8 +1,8 @@
defmodule Pleroma.Web.OAuth.Authorization do
use Ecto.Schema
alias Pleroma.{App, User, Repo}
alias Pleroma.Web.OAuth.Authorization
alias Pleroma.{User, Repo}
alias Pleroma.Web.OAuth.{Authorization, App}
schema "oauth_authorizations" do
field :token, :string

View file

@ -1,8 +1,8 @@
defmodule Pleroma.Web.OAuth.OAuthController do
use Pleroma.Web, :controller
alias Pleroma.Web.OAuth.{Authorization, Token}
alias Pleroma.{Repo, User, App}
alias Pleroma.Web.OAuth.{Authorization, Token, App}
alias Pleroma.{Repo, User}
alias Comeonin.Pbkdf2
def authorize(conn, params) do
@ -17,7 +17,7 @@ def authorize(conn, params) do
def create_authorization(conn, %{"authorization" => %{"name" => name, "password" => password, "client_id" => client_id}} = params) do
with %User{} = user <- User.get_cached_by_nickname(name),
true <- Pbkdf2.checkpw(password, user.password_hash),
%App{} = app <- Pleroma.Repo.get_by(Pleroma.App, client_id: client_id),
%App{} = app <- Repo.get_by(App, client_id: client_id),
{:ok, auth} <- Authorization.create_authorization(app, user) do
render conn, "results.html", %{
auth: auth

View file

@ -1,8 +1,8 @@
defmodule Pleroma.Web.OAuth.Token do
use Ecto.Schema
alias Pleroma.{App, User, Repo}
alias Pleroma.Web.OAuth.Token
alias Pleroma.{User, Repo}
alias Pleroma.Web.OAuth.{Token, App}
schema "oauth_tokens" do
field :token, :string

View file

@ -28,10 +28,6 @@ def user_fetcher(username) do
plug :accepts, ["json", "xml"]
end
pipeline :masto_config do
plug :accepts, ["json"]
end
pipeline :oauth do
plug :accepts, ["html", "json"]
end
@ -42,11 +38,10 @@ def user_fetcher(username) do
post "/token", OAuthController, :token_exchange
end
scope "/api/v1", Pleroma.Web do
pipe_through :masto_config
# TODO: Move this
get "/instance", TwitterAPI.UtilController, :masto_instance
post "/apps", MastodonAPI.MastodonAPIController, :create_app
scope "/api/v1", Pleroma.Web.MastodonAPI do
pipe_through :api
get "/instance", MastodonAPO.Controller, :masto_instance
post "/apps", MastodonAPIController, :create_app
end
scope "/api/v1", Pleroma.Web.MastodonAPI do

View file

@ -42,16 +42,4 @@ def version(conn, _params) do
_ -> json(conn, "Pleroma Dev")
end
end
# TODO: Move this
def masto_instance(conn, _params) do
response = %{
uri: Web.base_url,
title: Web.base_url,
description: "A Pleroma instance, an alternative fediverse server",
version: "dev"
}
json(conn, response)
end
end