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)) {
$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);
}
}

View file

@ -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;

View file

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

View file

@ -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;
}
}