Deny whitespace statuses

This commit is contained in:
dtluna 2017-04-24 12:09:11 +03:00
parent 1e3791877c
commit 5b6070ec40
2 changed files with 12 additions and 5 deletions

View file

@ -16,11 +16,15 @@ def status_update(conn, %{"status" => ""} = _status_data) do
empty_status_reply(conn) empty_status_reply(conn)
end end
def status_update(%{assigns: %{user: user}} = conn, %{"status" => _status_text} = status_data) do def status_update(%{assigns: %{user: user}} = conn, %{"status" => status_text} = status_data) do
media_ids = extract_media_ids(status_data) if status_text |> String.trim |> String.length != 0 do
{:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids", media_ids )) media_ids = extract_media_ids(status_data)
conn {:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids", media_ids ))
|> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user})) conn
|> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user}))
else
empty_status_reply(conn)
end
end end
def status_update(conn, _status_data) do def status_update(conn, _status_data) do

View file

@ -42,6 +42,9 @@ test "with credentials", %{conn: conn, user: user} do
conn = conn_with_creds |> post(request_path, %{ status: "" }) conn = conn_with_creds |> post(request_path, %{ status: "" })
assert json_response(conn, 400) == error_response assert json_response(conn, 400) == error_response
conn = conn_with_creds |> post(request_path, %{ status: " " })
assert json_response(conn, 400) == error_response
conn = conn_with_creds |> post(request_path, %{ status: "Nice meme." }) conn = conn_with_creds |> post(request_path, %{ status: "Nice meme." })
assert json_response(conn, 200) == ActivityRepresenter.to_map(Repo.one(Activity), %{user: user}) assert json_response(conn, 200) == ActivityRepresenter.to_map(Repo.one(Activity), %{user: user})
end end