AccountView: Add user background.
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index 5bf4a6ba2bc6b40cf38a6d491938afbaa0d5a2b0..6836d331a7ae89c5d2e58102f68ae55a26c5f698 100644 (file)
@@ -330,8 +330,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
     }
   end
 
-  # TODO: Add tests for this view
-  def render("poll.json", %{object: object} = _opts) do
+  def render("poll.json", %{object: object} = opts) do
     {multiple, options} =
       case object.data do
         %{"anyOf" => options} when is_list(options) -> {true, options}
@@ -352,6 +351,16 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
           _ -> false
         end
 
+      voted =
+        if opts[:for] do
+          existing_votes =
+            Pleroma.Web.ActivityPub.Utils.get_existing_votes(opts[:for].ap_id, object)
+
+          existing_votes != [] or opts[:for].ap_id == object.data["actor"]
+        else
+          false
+        end
+
       {options, votes_count} =
         Enum.map_reduce(options, 0, fn %{"name" => name} = option, count ->
           current_count = option["replies"]["totalItems"] || 0
@@ -371,8 +380,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
         multiple: multiple,
         votes_count: votes_count,
         options: options,
-        # TODO: Actually check for a vote
-        voted: false,
+        voted: voted,
         emojis: build_emojis(object.data["emoji"])
       }
     else