StatusController: Ignore nil scheduled_at parameters.
authorlain <lain@soykaf.club>
Wed, 22 Apr 2020 12:26:19 +0000 (14:26 +0200)
committerlain <lain@soykaf.club>
Wed, 22 Apr 2020 12:26:19 +0000 (14:26 +0200)
lib/pleroma/web/mastodon_api/controllers/status_controller.ex
test/web/mastodon_api/controllers/status_controller_test.exs

index 397dd10e3462c7744ef6a3d78066149302577db7..f6e4f7d66848123c3eb3dae3e83a7b658ee62039 100644 (file)
@@ -127,7 +127,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
   def create(
         %{assigns: %{user: user}} = conn,
         %{"status" => _, "scheduled_at" => scheduled_at} = params
-      ) do
+      )
+      when not is_nil(scheduled_at) do
     params = Map.put(params, "in_reply_to_status_id", params["in_reply_to_id"])
 
     with {:far_enough, true} <- {:far_enough, ScheduledActivity.far_enough?(scheduled_at)},
index 162f7b1b2ccdb36d01ec87c35b24cec2ccbd39b5..85068edd00eddf9a0551073ed6273d1962604f6d 100644 (file)
@@ -302,6 +302,17 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
       assert [] == Repo.all(Activity)
     end
 
+    test "ignores nil values", %{conn: conn} do
+      conn =
+        post(conn, "/api/v1/statuses", %{
+          "status" => "not scheduled",
+          "scheduled_at" => nil
+        })
+
+      assert result = json_response(conn, 200)
+      assert Activity.get_by_id(result["id"])
+    end
+
     test "creates a scheduled activity with a media attachment", %{user: user, conn: conn} do
       scheduled_at = NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(120), :millisecond)