return modifier token when creating a voting stack

This commit is contained in:
Baptiste Lemoine 2019-11-28 17:09:07 +01:00
parent 087fbafd6a
commit cfb6b9f65b
1 changed files with 24 additions and 7 deletions

View File

@ -321,12 +321,24 @@ class DefaultController extends AbstractController {
$data = $request->getContent(); $data = $request->getContent();
$data = json_decode( $data, true ); $data = json_decode( $data, true );
$newOwner = new Owner();
$newOwner $emOwner = $this->getDoctrine()->getRepository( Owner::class );
->setEmail( $data[ 'email' ] ) $existingOwner = false;
->setPseudo( $data[ 'pseudo' ] ); $foundOwner = $emOwner->findOneByEmail( trim( $data[ 'email' ] ) );
// manage existing or new Owner
if ( ! $foundOwner ) {
$foundOwner = new Owner();
$foundOwner
->setEmail( $data[ 'email' ] )
->setPseudo( $data[ 'pseudo' ] );
} else {
$existingOwner = true;
}
$foundOwner
->setModifierToken( $poll->generateAdminKey() );
$stack = new StackOfVotes(); $stack = new StackOfVotes();
$stack $stack
->setOwner( $foundOwner )
->setPseudo( $data[ 'pseudo' ] ) ->setPseudo( $data[ 'pseudo' ] )
->setPoll( $poll ); ->setPoll( $poll );
foreach ( $data[ 'votes' ] as $voteInfo ) { foreach ( $data[ 'votes' ] as $voteInfo ) {
@ -354,11 +366,16 @@ class DefaultController extends AbstractController {
$em->persist( $stack ); $em->persist( $stack );
$em->persist( $poll ); $em->persist( $poll );
$em->flush(); $em->flush();
$precision = '';
if ( $existingOwner ) {
$precision = ' from an existing owner : ' . $foundOwner->getEmail();
}
return $this->json( [ return $this->json( [
'message' => 'you created a vote stack', 'message' => 'you created a vote stack' . $precision,
'vote_stack' => $stack, 'vote_stack' => $stack,
'json_you_sent' => $data, 'owner_modifier_token' => $foundOwner->getModifierToken(),
'json_you_sent' => $data,
], ],
201 ); 201 );
} }