Issue 13922: "voted" must not be null (#13923)

This commit is contained in:
Michael Vogel 2024-02-20 07:09:55 +01:00 committed by GitHub
parent bb7d25dfc9
commit d95c9d28a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 19 additions and 9 deletions

View file

@ -67,10 +67,12 @@ class Poll extends BaseFactory
if (empty($uid)) { if (empty($uid)) {
$ownvotes = null; $ownvotes = null;
$voted = null;
} else { } else {
$ownvotes = []; $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);
} }
} }

View file

@ -32,7 +32,6 @@ use Friendica\Database\DBA;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\Post; use Friendica\Model\Post;
use Friendica\Model\Tag as TagModel;
use Friendica\Model\Verb; use Friendica\Model\Verb;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Object\Api\Mastodon\Status\FriendicaDeliveryData; use Friendica\Object\Api\Mastodon\Status\FriendicaDeliveryData;
@ -60,8 +59,6 @@ class Status extends BaseFactory
private $mstdnAttachmentFactory; private $mstdnAttachmentFactory;
/** @var Emoji */ /** @var Emoji */
private $mstdnEmojiFactory; private $mstdnEmojiFactory;
/** @var Error */
private $mstdnErrorFactory;
/** @var Poll */ /** @var Poll */
private $mstdnPollFactory; private $mstdnPollFactory;
/** @var ContentItem */ /** @var ContentItem */
@ -78,7 +75,6 @@ class Status extends BaseFactory
Card $mstdnCardFactory, Card $mstdnCardFactory,
Attachment $mstdnAttachmentFactory, Attachment $mstdnAttachmentFactory,
Emoji $mstdnEmojiFactory, Emoji $mstdnEmojiFactory,
Error $mstdnErrorFactory,
Poll $mstdnPollFactory, Poll $mstdnPollFactory,
ContentItem $contentItem, ContentItem $contentItem,
ACLFormatter $aclFormatter ACLFormatter $aclFormatter
@ -91,7 +87,6 @@ class Status extends BaseFactory
$this->mstdnCardFactory = $mstdnCardFactory; $this->mstdnCardFactory = $mstdnCardFactory;
$this->mstdnAttachmentFactory = $mstdnAttachmentFactory; $this->mstdnAttachmentFactory = $mstdnAttachmentFactory;
$this->mstdnEmojiFactory = $mstdnEmojiFactory; $this->mstdnEmojiFactory = $mstdnEmojiFactory;
$this->mstdnErrorFactory = $mstdnErrorFactory;
$this->mstdnPollFactory = $mstdnPollFactory; $this->mstdnPollFactory = $mstdnPollFactory;
$this->contentItem = $contentItem; $this->contentItem = $contentItem;
$this->aclFormatter = $aclFormatter; $this->aclFormatter = $aclFormatter;

View file

@ -21,7 +21,6 @@
namespace Friendica\Module\Api\Mastodon; namespace Friendica\Module\Api\Mastodon;
use Friendica\Core\System;
use Friendica\DI; use Friendica\DI;
use Friendica\Module\BaseApi; use Friendica\Module\BaseApi;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;

View file

@ -61,7 +61,7 @@ class Poll extends BaseDataTransferObject
* @param int $votes Number of total votes * @param int $votes Number of total votes
* @param array $ownvotes Own vote * @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->id = (string)$question['id'];
$this->expires_at = !empty($question['end-time']) ? DateTimeFormat::utc($question['end-time'], DateTimeFormat::JSON) : null; $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->multiple = (bool)$question['multiple'];
$this->votes_count = $votes; $this->votes_count = $votes;
$this->voters_count = $this->multiple ? $question['voters'] : null; $this->voters_count = $this->multiple ? $question['voters'] : null;
$this->voted = null; $this->voted = $voted;
$this->own_votes = $ownvotes; $this->own_votes = $ownvotes;
$this->options = $options; $this->options = $options;
$this->emojis = []; $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;
}
} }