Deny whitespace statuses
authordtluna <dtluna@openmailbox.org>
Mon, 24 Apr 2017 09:09:11 +0000 (12:09 +0300)
committerdtluna <dtluna@openmailbox.org>
Mon, 24 Apr 2017 09:09:11 +0000 (12:09 +0300)
lib/pleroma/web/twitter_api/twitter_api_controller.ex
test/web/twitter_api/twitter_api_controller_test.exs

index 2ea45603a1d38042567b2e7e1867965ea356d883..4740c3a4c271e16583793d8ff3f756573cfdd516 100644 (file)
@@ -16,11 +16,15 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
     empty_status_reply(conn)
   end
 
-  def status_update(%{assigns: %{user: user}} = conn, %{"status" => _status_text} = status_data) do
-    media_ids = extract_media_ids(status_data)
-    {:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids",  media_ids ))
-    conn
-    |> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user}))
+  def status_update(%{assigns: %{user: user}} = conn, %{"status" => status_text} = status_data) do
+    if status_text |> String.trim |> String.length != 0 do
+      media_ids = extract_media_ids(status_data)
+      {:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids",  media_ids ))
+      conn
+      |> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user}))
+    else
+      empty_status_reply(conn)
+    end
   end
 
   def status_update(conn, _status_data) do
index 0bd27c8c706e696d9f668bc9b331f7a2891ae2ff..766268ce96f97d0142e680b65b52525e666218a2 100644 (file)
@@ -42,6 +42,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
       conn = conn_with_creds |> post(request_path, %{ status: "" })
       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." })
       assert json_response(conn, 200) == ActivityRepresenter.to_map(Repo.one(Activity), %{user: user})
     end