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 @@ def user_fetcher(username) do
|
||||||
get "/statuses/show/:id", TwitterAPI.Controller, :fetch_status
|
get "/statuses/show/:id", TwitterAPI.Controller, :fetch_status
|
||||||
get "/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation
|
get "/statusnet/conversation/:id", TwitterAPI.Controller, :fetch_conversation
|
||||||
get "/statusnet/config", TwitterAPI.Controller, :config
|
get "/statusnet/config", TwitterAPI.Controller, :config
|
||||||
|
post "/account/register", TwitterAPI.Controller, :register
|
||||||
end
|
end
|
||||||
|
|
||||||
scope "/api", Pleroma.Web do
|
scope "/api", Pleroma.Web do
|
||||||
|
|
|
@ -131,6 +131,17 @@ def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do
|
||||||
|> json_reply(200, response)
|
|> json_reply(200, response)
|
||||||
end
|
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
|
defp json_reply(conn, status, json) do
|
||||||
conn
|
conn
|
||||||
|> put_resp_content_type("application/json")
|
|> put_resp_content_type("application/json")
|
||||||
|
|
|
@ -216,6 +216,44 @@ test "with credentials", %{conn: conn, user: current_user} do
|
||||||
end
|
end
|
||||||
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
|
defp valid_user(_context) do
|
||||||
{ :ok, user } = UserBuilder.insert(%{nickname: "lambda", ap_id: "lambda"})
|
{ :ok, user } = UserBuilder.insert(%{nickname: "lambda", ap_id: "lambda"})
|
||||||
[user: user]
|
[user: user]
|
||||||
|
|
Loading…
Reference in a new issue