mirror of
https://framagit.org/tykayn/date-poll-api
synced 2023-08-25 08:23:11 +02:00
⚡ enrich computed data
This commit is contained in:
parent
58c28474f8
commit
510e5303be
@ -87,7 +87,6 @@
|
||||
->setTo( $founduser->getEmail() )
|
||||
->setBody(
|
||||
$this->renderView(
|
||||
// templates/hello/email.txt.twig
|
||||
'emails/owner-list.html.twig',
|
||||
$templateVars
|
||||
)
|
||||
@ -95,11 +94,7 @@
|
||||
$mailer->send( $message );
|
||||
|
||||
return $this->render( 'emails/owner-list.html.twig', $templateVars );
|
||||
// return $this->json( [
|
||||
// 'message' => 'here are your polls, ' . $email,
|
||||
// 'data' => 'email was sent with a list of ' . count( $polls ) . ' polls',
|
||||
// ],
|
||||
// 200 );
|
||||
|
||||
} else {
|
||||
return $this->json( [
|
||||
'message' => 'no user found for email ' . $email,
|
||||
@ -535,11 +530,27 @@
|
||||
if ( $existingOwner ) {
|
||||
$precision = ' from an existing owner : ' . $foundOwner->getEmail();
|
||||
}
|
||||
$comments = [];
|
||||
$stacks = [];
|
||||
$choices = [];
|
||||
foreach ( $poll->getComments() as $c ) {
|
||||
$comments[] = $c->display();
|
||||
}
|
||||
foreach ( $poll->getStacksOfVotes() as $c ) {
|
||||
$stacks[] = $c->display();
|
||||
}
|
||||
foreach ( $poll->getChoices() as $c ) {
|
||||
$choices[] = $c->display();
|
||||
}
|
||||
|
||||
return $this->json( [
|
||||
'message' => 'you created a vote stack' . $precision,
|
||||
'poll' => $poll,
|
||||
'vote_stack' => $stack->display(),
|
||||
'stacks' => $stacks,
|
||||
'comments' => $comments,
|
||||
'choices' => $choices,
|
||||
'choices_count' => $poll->computeAnswers(),
|
||||
'vote_count' => count( $poll->getStacksOfVotes() ),
|
||||
'owner_modifier_token' => $foundOwner->getModifierToken(),
|
||||
'admin_key' => $poll->getAdminKey(),
|
||||
|
@ -155,12 +155,19 @@
|
||||
public function computeAnswers() {
|
||||
// counts each number of answer for this choice
|
||||
$computedArray = [];
|
||||
$people = [];
|
||||
$maxScore = 0;
|
||||
|
||||
foreach ( $this->getStacksOfVotes() as $stack_of_vote ) {
|
||||
foreach ( $stack_of_vote->getVotes() as $vote ) {
|
||||
if ( ! isset( $computedArray[ $vote->getChoice()->getId() ] ) ) {
|
||||
$computedArray[ $vote->getChoice()->getId() ] = [
|
||||
$answer = $vote->getValue();
|
||||
$choice_id = $vote->getChoice()->getId();
|
||||
|
||||
if ( ! isset( $computedArray[ $choice_id ] ) ) {
|
||||
$computedArray[ $choice_id ] = [
|
||||
'choice_id' => $choice_id,
|
||||
'choice_text' => $vote->getChoice()->getName(),
|
||||
'id' => $vote->getId(),
|
||||
'score' => 0,
|
||||
'yes' => [
|
||||
'count' => 0,
|
||||
'people' => [],
|
||||
@ -175,14 +182,24 @@
|
||||
],
|
||||
];
|
||||
}
|
||||
$computedArray[ $vote->getChoice()->getId() ][ $vote->getValue() ][ 'count' ] ++;
|
||||
$computedArray[ $vote->getChoice()->getId() ][ $vote->getValue() ][ 'people' ][] = $stack_of_vote->getOwner()->getPseudo();
|
||||
$computedArray[ $choice_id ][ $answer ][ 'count' ] ++;
|
||||
$computedArray[ $choice_id ][ $answer ][ 'people' ][] = $stack_of_vote->getOwner()->getPseudo();
|
||||
|
||||
if ( $answer == 'yes' ) {
|
||||
$computedArray[ $choice_id ][ 'score' ] += 1;
|
||||
} elseif ( $answer == 'maybe' ) {
|
||||
$computedArray[ $choice_id ][ 'score' ] += 0.5;
|
||||
}
|
||||
// compare with max value
|
||||
if ( $computedArray[ $choice_id ][ 'score' ] > $maxScore ) {
|
||||
$maxScore = $computedArray[ $choice_id ][ 'score' ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'counts' => $computedArray,
|
||||
'maxScore' => $maxScore,
|
||||
];
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user