From d95c9d28a89baf8c8a82e9a229a46f4e35d39024 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Tue, 20 Feb 2024 07:09:55 +0100 Subject: [PATCH] Issue 13922: "voted" must not be null (#13923) --- src/Factory/Api/Mastodon/Poll.php | 4 +++- src/Factory/Api/Mastodon/Status.php | 5 ----- src/Module/Api/Mastodon/Polls.php | 1 - src/Object/Api/Mastodon/Poll.php | 18 ++++++++++++++++-- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/Factory/Api/Mastodon/Poll.php b/src/Factory/Api/Mastodon/Poll.php index 17c8054145..036da1d31e 100644 --- a/src/Factory/Api/Mastodon/Poll.php +++ b/src/Factory/Api/Mastodon/Poll.php @@ -67,10 +67,12 @@ class Poll extends BaseFactory if (empty($uid)) { $ownvotes = null; + $voted = null; } else { $ownvotes = []; + $voted = false; } - return new \Friendica\Object\Api\Mastodon\Poll($question, $options, $expired, $votes, $ownvotes); + return new \Friendica\Object\Api\Mastodon\Poll($question, $options, $expired, $votes, $ownvotes, $voted); } } diff --git a/src/Factory/Api/Mastodon/Status.php b/src/Factory/Api/Mastodon/Status.php index e001ef80e0..5cfcad6362 100644 --- a/src/Factory/Api/Mastodon/Status.php +++ b/src/Factory/Api/Mastodon/Status.php @@ -32,7 +32,6 @@ use Friendica\Database\DBA; use Friendica\DI; use Friendica\Model\Item; use Friendica\Model\Post; -use Friendica\Model\Tag as TagModel; use Friendica\Model\Verb; use Friendica\Network\HTTPException; use Friendica\Object\Api\Mastodon\Status\FriendicaDeliveryData; @@ -60,8 +59,6 @@ class Status extends BaseFactory private $mstdnAttachmentFactory; /** @var Emoji */ private $mstdnEmojiFactory; - /** @var Error */ - private $mstdnErrorFactory; /** @var Poll */ private $mstdnPollFactory; /** @var ContentItem */ @@ -78,7 +75,6 @@ class Status extends BaseFactory Card $mstdnCardFactory, Attachment $mstdnAttachmentFactory, Emoji $mstdnEmojiFactory, - Error $mstdnErrorFactory, Poll $mstdnPollFactory, ContentItem $contentItem, ACLFormatter $aclFormatter @@ -91,7 +87,6 @@ class Status extends BaseFactory $this->mstdnCardFactory = $mstdnCardFactory; $this->mstdnAttachmentFactory = $mstdnAttachmentFactory; $this->mstdnEmojiFactory = $mstdnEmojiFactory; - $this->mstdnErrorFactory = $mstdnErrorFactory; $this->mstdnPollFactory = $mstdnPollFactory; $this->contentItem = $contentItem; $this->aclFormatter = $aclFormatter; diff --git a/src/Module/Api/Mastodon/Polls.php b/src/Module/Api/Mastodon/Polls.php index ed5ae99352..5a4d5dfe72 100644 --- a/src/Module/Api/Mastodon/Polls.php +++ b/src/Module/Api/Mastodon/Polls.php @@ -21,7 +21,6 @@ namespace Friendica\Module\Api\Mastodon; -use Friendica\Core\System; use Friendica\DI; use Friendica\Module\BaseApi; use Friendica\Network\HTTPException; diff --git a/src/Object/Api/Mastodon/Poll.php b/src/Object/Api/Mastodon/Poll.php index 1ccc6d4cd7..d4455c24a1 100644 --- a/src/Object/Api/Mastodon/Poll.php +++ b/src/Object/Api/Mastodon/Poll.php @@ -61,7 +61,7 @@ class Poll extends BaseDataTransferObject * @param int $votes Number of total votes * @param array $ownvotes Own vote */ - public function __construct(array $question, array $options, bool $expired, int $votes, array $ownvotes = null) + public function __construct(array $question, array $options, bool $expired, int $votes, array $ownvotes = null, bool $voted = null) { $this->id = (string)$question['id']; $this->expires_at = !empty($question['end-time']) ? DateTimeFormat::utc($question['end-time'], DateTimeFormat::JSON) : null; @@ -69,9 +69,23 @@ class Poll extends BaseDataTransferObject $this->multiple = (bool)$question['multiple']; $this->votes_count = $votes; $this->voters_count = $this->multiple ? $question['voters'] : null; - $this->voted = null; + $this->voted = $voted; $this->own_votes = $ownvotes; $this->options = $options; $this->emojis = []; } + + public function toArray(): array + { + $status = parent::toArray(); + + if (is_null($status['voted'])) { + unset($status['voted']); + } + + if (is_null($status['own_votes'])) { + unset($status['own_votes']); + } + return $status; + } }