%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/polls/helpers/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/polls/helpers/RestDefinitions.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2021 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\polls\helpers;
use humhub\modules\polls\models\Poll;
use humhub\modules\polls\models\PollAnswer;
use humhub\modules\rest\definitions\ContentDefinitions;
use humhub\modules\rest\definitions\UserDefinitions;
/**
* Class RestDefinitions
*
* @package humhub\modules\rest\definitions
*/
class RestDefinitions
{
public static function getPoll(Poll $poll): array
{
return [
'id' => $poll->id,
'contentcontainer_id' => $poll->content->contentcontainer_id,
'question' => $poll->question,
'description' => $poll->description,
'allow_multiple' => (int)$poll->allow_multiple,
'created_at' => $poll->created_at,
'created_by' => UserDefinitions::getUserShort($poll->getOwner()),
'updated_at' => $poll->updated_at,
'updated_by' => UserDefinitions::getUserShort($poll->content->updatedBy),
'is_random' => (int)$poll->is_random,
'closed' => (int)$poll->closed,
'anonymous' => (int)$poll->anonymous,
'show_result_after_close' => (int)$poll->show_result_after_close,
'answers' => self::getAnswersByPollId($poll->id),
'content' => ContentDefinitions::getContent($poll->content),
];
}
public static function getAnswersByPollId(int $pollId): array
{
$pollAnswers = PollAnswer::findAll(['poll_id' => $pollId]);
$answersArray = [];
foreach ($pollAnswers as $pollAnswer) {
$answersArray[] = self::getAnswer($pollAnswer);
}
return $answersArray;
}
public static function getAnswer(PollAnswer $pollAnswer): array
{
return [
'id' => $pollAnswer->id,
'poll_id' => $pollAnswer->poll_id,
'answer' => $pollAnswer->answer,
'created_at' => $pollAnswer->created_at,
'created_by' => UserDefinitions::getUserShort($pollAnswer->createdBy),
'updated_at' => $pollAnswer->updated_at,
'updated_by' => UserDefinitions::getUserShort($pollAnswer->updatedBy),
];
}
}