projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'generic-fe-settings' into 'develop'
[akkoma]
/
lib
/
pleroma
/
web
/
common_api
/
utils.ex
diff --git
a/lib/pleroma/web/common_api/utils.ex
b/lib/pleroma/web/common_api/utils.ex
index 97172fd941aa4fd09e74fe7579f9d8e39f85c570..f35ed36abc55bd7cd14c0ca793cf3ae5716c229c 100644
(file)
--- a/
lib/pleroma/web/common_api/utils.ex
+++ b/
lib/pleroma/web/common_api/utils.ex
@@
-103,12
+103,15
@@
defmodule Pleroma.Web.CommonAPI.Utils do
end
def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data)
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
%{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
if Enum.count(options) > limits.max_options do
raise ArgumentError, message: "Poll can't contain more than #{limits.max_options} options"
end
@@
-157,7
+160,7
@@
defmodule Pleroma.Web.CommonAPI.Utils do
end
end
end
end
- def make_poll_data(%{"poll" =>
_}
) do
+ def make_poll_data(%{"poll" =>
poll}) when is_map(poll
) do
"Invalid poll"
end
"Invalid poll"
end
@@
-488,4
+491,15
@@
defmodule Pleroma.Web.CommonAPI.Utils do
{:error, "No such conversation"}
end
end
{:error, "No such conversation"}
end
end
+
+ def make_answer_data(%User{ap_id: ap_id}, object, name) do
+ %{
+ "type" => "Answer",
+ "actor" => ap_id,
+ "cc" => [object.data["actor"]],
+ "to" => [],
+ "name" => name,
+ "inReplyTo" => object.data["id"]
+ }
+ end
end
end