diff options
author | Roger Braun <roger@rogerbraun.net> | 2017-04-25 12:01:00 +0200 |
---|---|---|
committer | Roger Braun <roger@rogerbraun.net> | 2017-04-25 12:01:00 +0200 |
commit | 5a3be8ad1b76a2d9828d9991a8dd20d12673fd71 (patch) | |
tree | 698c59073ec1fa4dfa2f65ab5ac5897aaa848180 /lib/pleroma/web/twitter_api/twitter_api_controller.ex | |
parent | aef7e943e7a2a6924f3914142b53a6f862577c52 (diff) | |
parent | a25adfbfeedb049f44bb05275ce1040ed00a4ad2 (diff) | |
download | pleroma-5a3be8ad1b76a2d9828d9991a8dd20d12673fd71.tar.gz |
Merge branch 'dtluna/pleroma-bugfix/deny-empty-posts' into develop
Diffstat (limited to 'lib/pleroma/web/twitter_api/twitter_api_controller.ex')
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 4d21ce9d3..d9ff7e530 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -12,11 +12,23 @@ defmodule Pleroma.Web.TwitterAPI.Controller do |> json_reply(200, response) end - def status_update(%{assigns: %{user: user}} = conn, 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 + empty_status_reply(conn) + end + + defp empty_status_reply(conn) do + bad_request_reply(conn, "Client must provide a 'status' parameter with a value.") end defp extract_media_ids(status_data) do @@ -182,7 +194,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end defp bad_request_reply(conn, error_message) do - json = Poison.encode!(%{"error" => error_message}) + json = error_json(conn, error_message) json_reply(conn, 400, json) end @@ -193,9 +205,11 @@ defmodule Pleroma.Web.TwitterAPI.Controller do end defp forbidden_json_reply(conn, error_message) do - json = %{"error" => error_message, "request" => conn.request_path} - |> Poison.encode! - + json = error_json(conn, error_message) json_reply(conn, 403, json) end + + defp error_json(conn, error_message) do + %{"error" => error_message, "request" => conn.request_path} |> Poison.encode! + end end |