akkoma/lib/pleroma/web/twitter_api/controllers/util_controller.ex

72 lines
2 KiB
Elixir
Raw Normal View History

2017-06-20 14:55:57 +00:00
defmodule Pleroma.Web.TwitterAPI.UtilController do
use Pleroma.Web, :controller
alias Pleroma.Web
2017-10-19 15:37:24 +00:00
alias Pleroma.{Repo, PasswordResetToken, User}
def show_password_reset(conn, %{"token" => token}) do
with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}),
%User{} = user <- Repo.get(User, token.user_id) do
render conn, "password_reset.html", %{
token: token,
user: user
}
else
_e -> render conn, "invalid_token.html"
end
end
def password_reset(conn, %{"data" => data}) do
with {:ok, _} <- PasswordResetToken.reset_password(data["token"], data) do
render conn, "password_reset_success.html"
else
_e -> render conn, "password_reset_failed.html"
end
end
2017-06-20 14:55:57 +00:00
def help_test(conn, _params) do
json(conn, "ok")
end
@instance Application.get_env(:pleroma, :instance)
2017-06-20 14:55:57 +00:00
def config(conn, _params) do
2017-08-24 12:07:05 +00:00
case get_format(conn) do
"xml" ->
response = """
<config>
<site>
<name>#{Keyword.get(@instance, :name)}</name>
2017-08-24 12:07:05 +00:00
<site>#{Web.base_url}</site>
<textlimit>#{Keyword.get(@instance, :limit)}</textlimit>
<closed>#{!Keyword.get(@instance, :registrations_open)}</closed>
2017-08-24 12:07:05 +00:00
</site>
</config>
"""
conn
|> put_resp_content_type("application/xml")
|> send_resp(200, response)
_ ->
json(conn, %{
site: %{
name: Keyword.get(@instance, :name),
2017-08-24 12:07:05 +00:00
server: Web.base_url,
textlimit: Keyword.get(@instance, :limit),
closed: if(Keyword.get(@instance, :registrations_open), do: "0", else: "1")
2017-08-24 12:07:05 +00:00
}
})
end
end
def version(conn, _params) do
version = Keyword.get(@instance, :version)
2017-08-24 12:07:05 +00:00
case get_format(conn) do
"xml" ->
response = "<version>#{version}</version>"
2017-08-24 12:07:05 +00:00
conn
|> put_resp_content_type("application/xml")
|> send_resp(200, response)
_ -> json(conn, version)
2017-08-24 12:07:05 +00:00
end
2017-06-20 14:55:57 +00:00
end
end