mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-12-23 00:26:30 +00:00
Add registration to the TwAPI controller.
This commit is contained in:
parent
b1edd94baa
commit
5dac3727f1
3 changed files with 50 additions and 0 deletions
|
@ -26,6 +26,7 @@ defmodule Pleroma.Web.Router do
|
|||
get "/statuses/show/:id", TwitterAPI.Controller, :fetch_status
|
||||
get "/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation
|
||||
get "/statusnet/config", TwitterAPI.Controller, :config
|
||||
post "/account/register", TwitterAPI.Controller, :register
|
||||
end
|
||||
|
||||
scope "/api", Pleroma.Web do
|
||||
|
|
|
@ -131,6 +131,17 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
|
|||
|> json_reply(200, response)
|
||||
end
|
||||
|
||||
def register(conn, params) do
|
||||
with {:ok, user} <- TwitterAPI.register_user(params) do
|
||||
conn
|
||||
|> json_reply(200, Poison.encode!(user))
|
||||
else
|
||||
{:error, errors} ->
|
||||
conn
|
||||
|> json_reply(400, Poison.encode!(errors))
|
||||
end
|
||||
end
|
||||
|
||||
defp json_reply(conn, status, json) do
|
||||
conn
|
||||
|> put_resp_content_type("application/json")
|
||||
|
|
|
@ -216,6 +216,44 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||
end
|
||||
end
|
||||
|
||||
describe "POST /api/account/register" do
|
||||
test "it creates a new user", %{conn: conn} do
|
||||
data = %{
|
||||
"nickname" => "lain",
|
||||
"email" => "lain@wired.jp",
|
||||
"fullname" => "lain iwakura",
|
||||
"bio" => "close the world.",
|
||||
"password" => "bear",
|
||||
"confirm" => "bear"
|
||||
}
|
||||
|
||||
conn = conn
|
||||
|> post("/api/account/register", data)
|
||||
|
||||
user = json_response(conn, 200)
|
||||
|
||||
fetched_user = Repo.get_by(User, nickname: "lain")
|
||||
assert user == UserRepresenter.to_map(fetched_user)
|
||||
end
|
||||
|
||||
test "it returns errors on a problem", %{conn: conn} do
|
||||
data = %{
|
||||
"email" => "lain@wired.jp",
|
||||
"fullname" => "lain iwakura",
|
||||
"bio" => "close the world.",
|
||||
"password" => "bear",
|
||||
"confirm" => "bear"
|
||||
}
|
||||
|
||||
conn = conn
|
||||
|> post("/api/account/register", data)
|
||||
|
||||
errors = json_response(conn, 400)
|
||||
|
||||
assert is_binary(errors["error"])
|
||||
end
|
||||
end
|
||||
|
||||
defp valid_user(_context) do
|
||||
{ :ok, user } = UserBuilder.insert(%{nickname: "lambda", ap_id: "lambda"})
|
||||
[user: user]
|
||||
|
|
Loading…
Reference in a new issue