mirror of
https://framagit.org/tykayn/date-poll-api
synced 2023-08-25 08:23:11 +02:00
call to update a poll with a token
This commit is contained in:
parent
603abc5332
commit
33a71d05e4
@ -106,7 +106,7 @@ class PollController extends FramadateController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @Put(
|
* @Put(
|
||||||
* path = "/{id}",
|
* path = "/{id}/{token}",
|
||||||
* name = "update_poll",
|
* name = "update_poll",
|
||||||
* requirements = {"content"="\w+", "poll_id"="\d+"}
|
* requirements = {"content"="\w+", "poll_id"="\d+"}
|
||||||
* )
|
* )
|
||||||
@ -114,8 +114,15 @@ class PollController extends FramadateController {
|
|||||||
public
|
public
|
||||||
function updatePollConfig(
|
function updatePollConfig(
|
||||||
Poll $poll,
|
Poll $poll,
|
||||||
|
string $token,
|
||||||
Request $request
|
Request $request
|
||||||
) {
|
) {
|
||||||
|
if ( $poll->getAdminKey() !== $token ) {
|
||||||
|
return $this->json( [
|
||||||
|
'message' => 'you are NOT allowed to update the poll ' . $poll->getTitle(),
|
||||||
|
],
|
||||||
|
403 );
|
||||||
|
}
|
||||||
|
|
||||||
// TODO check validity of request
|
// TODO check validity of request
|
||||||
// update only if we have the admin key
|
// update only if we have the admin key
|
||||||
@ -347,13 +354,13 @@ class PollController extends FramadateController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete all expired polls and their children
|
* Check is a slug is already taken by a poll
|
||||||
* @Get(
|
* @Get(
|
||||||
* path = "/check-slug-is-unique/{slug}",
|
* path = "/check-slug-is-unique/{slug}",
|
||||||
* name = "check_slug_is_unique",
|
* name = "check_slug_is_unique",
|
||||||
* )
|
* )
|
||||||
*/
|
*/
|
||||||
public function checkSlugIsUnique( $slug ) {
|
public function checkSlugIsUniqueAction( $slug ) {
|
||||||
$emPoll = $this->getDoctrine()->getRepository( Poll::class );
|
$emPoll = $this->getDoctrine()->getRepository( Poll::class );
|
||||||
$found = $emPoll->findOneBySlug( $slug );
|
$found = $emPoll->findOneBySlug( $slug );
|
||||||
if ( $found ) {
|
if ( $found ) {
|
||||||
@ -377,4 +384,56 @@ class PollController extends FramadateController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all expired polls and their children
|
||||||
|
* @Get(
|
||||||
|
* path = "/admin/{token}",
|
||||||
|
* name = "check_slug_is_unique",
|
||||||
|
* )
|
||||||
|
*/
|
||||||
|
public function getAdministrationConfig( $token ) {
|
||||||
|
$emPoll = $this->getDoctrine()->getRepository( Poll::class );
|
||||||
|
$pollFound = $emPoll->findOneByAdminKey( $token );
|
||||||
|
if ( $pollFound ) {
|
||||||
|
|
||||||
|
$poll = $pollFound;
|
||||||
|
$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();
|
||||||
|
}
|
||||||
|
$returnedPoll = [
|
||||||
|
'message' => 'your poll config',
|
||||||
|
'poll' => $poll,
|
||||||
|
'stacks_count' => count( $poll->getStacksOfVotes() ),
|
||||||
|
'stacks' => $stacks,
|
||||||
|
'choices_count' => $poll->computeAnswers(),
|
||||||
|
'choices' => $choices,
|
||||||
|
'comments' => $comments,
|
||||||
|
'comments_count' => count( $comments ),
|
||||||
|
'token' => $token,
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->json( $returnedPoll,
|
||||||
|
200 );
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json( [
|
||||||
|
'message' => 'You are not allowed to do anything with this token',
|
||||||
|
'data' => [
|
||||||
|
'token' => $token,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
403 );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user