Accept strings in expires_in because sasuga javascript
authorrinpatch <rinpatch@sdf.org>
Tue, 21 May 2019 14:30:51 +0000 (17:30 +0300)
committerrinpatch <rinpatch@sdf.org>
Tue, 21 May 2019 14:30:51 +0000 (17:30 +0300)
lib/pleroma/web/common_api/utils.ex

index 66153a105e2e6f987062f5e11344a12c8230d1f5..1a239de97377fb716c57cfb521281731c28b45cd 100644 (file)
@@ -103,12 +103,15 @@ defmodule Pleroma.Web.CommonAPI.Utils do
   end
 
   def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data)
-      when is_list(options) and is_integer(expires_in) do
+      when is_list(options) do
     %{max_expiration: max_expiration, min_expiration: min_expiration} =
       limits = Pleroma.Config.get([:instance, :poll_limits])
 
     # XXX: There is probably a cleaner way of doing this
     try do
+      # In some cases mastofe sends out strings instead of integers
+      expires_in = if is_binary(expires_in), do: String.to_integer(expires_in), else: expires_in
+
       if Enum.count(options) > limits.max_options do
         raise ArgumentError, message: "Poll can't contain more than #{limits.max_options} options"
       end