Issue 13922: "voted" must not be null (#13923)
This commit is contained in:
parent
bb7d25dfc9
commit
d95c9d28a8
4 changed files with 19 additions and 9 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue