⚡ can create poll
This commit is contained in:
parent
13cd182f3c
commit
6b4994b35a
|
@ -8,19 +8,20 @@
|
||||||
"friendsofsymfony/rest-bundle": "^2.6",
|
"friendsofsymfony/rest-bundle": "^2.6",
|
||||||
"jms/serializer-bundle": "^3.4",
|
"jms/serializer-bundle": "^3.4",
|
||||||
"nelmio/api-doc-bundle": "^3.4",
|
"nelmio/api-doc-bundle": "^3.4",
|
||||||
|
"sensio/framework-extra-bundle": "^5.5",
|
||||||
"symfony/console": "4.3.*",
|
"symfony/console": "4.3.*",
|
||||||
"symfony/dotenv": "4.3.*",
|
"symfony/dotenv": "4.3.*",
|
||||||
"symfony/flex": "^1.3.1",
|
"symfony/flex": "^1.3.1",
|
||||||
"symfony/form": "4.3.*",
|
"symfony/form": "4.3.*",
|
||||||
"symfony/framework-bundle": "4.3.*",
|
"symfony/framework-bundle": "4.3.*",
|
||||||
"symfony/intl": "4.3.*",
|
"symfony/intl": "4.3.*",
|
||||||
|
"symfony/maker-bundle": "^1.14",
|
||||||
"symfony/orm-pack": "^1.0",
|
"symfony/orm-pack": "^1.0",
|
||||||
"symfony/validator": "4.3.*",
|
"symfony/validator": "4.3.*",
|
||||||
"symfony/yaml": "4.3.*"
|
"symfony/yaml": "4.3.*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"doctrine/doctrine-fixtures-bundle": "^3.2",
|
"doctrine/doctrine-fixtures-bundle": "^3.2",
|
||||||
"symfony/maker-bundle": "^1.14",
|
|
||||||
"symfony/web-server-bundle": "4.3.*"
|
"symfony/web-server-bundle": "4.3.*"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "927a6acf21288c4cb4bc4eb7000dddaf",
|
"content-hash": "fa70b5946a14ecedaa82c3754b1601e7",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "doctrine/annotations",
|
"name": "doctrine/annotations",
|
||||||
|
@ -2489,6 +2489,58 @@
|
||||||
],
|
],
|
||||||
"time": "2019-02-18T16:27:10+00:00"
|
"time": "2019-02-18T16:27:10+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "nikic/php-parser",
|
||||||
|
"version": "v4.2.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||||
|
"reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b76bbc3c51f22c570648de48e8c2d941ed5e2cf2",
|
||||||
|
"reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"php": ">=7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ircmaxell/php-yacc": "0.0.4",
|
||||||
|
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/php-parse"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "4.2-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PhpParser\\": "lib/PhpParser"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nikita Popov"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A PHP parser written in PHP",
|
||||||
|
"keywords": [
|
||||||
|
"parser",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"time": "2019-10-25T18:33:07+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ocramius/package-versions",
|
"name": "ocramius/package-versions",
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
|
@ -2901,6 +2953,84 @@
|
||||||
],
|
],
|
||||||
"time": "2019-11-01T11:05:21+00:00"
|
"time": "2019-11-01T11:05:21+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "sensio/framework-extra-bundle",
|
||||||
|
"version": "v5.5.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
|
||||||
|
"reference": "dfc2c4df9f7d465a65c770e9feb578fe071636f7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/dfc2c4df9f7d465a65c770e9feb578fe071636f7",
|
||||||
|
"reference": "dfc2c4df9f7d465a65c770e9feb578fe071636f7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/annotations": "^1.0",
|
||||||
|
"php": ">=7.1.3",
|
||||||
|
"symfony/config": "^4.3|^5.0",
|
||||||
|
"symfony/dependency-injection": "^4.3|^5.0",
|
||||||
|
"symfony/framework-bundle": "^4.3|^5.0",
|
||||||
|
"symfony/http-kernel": "^4.3|^5.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"doctrine/doctrine-cache-bundle": "<1.3.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-bundle": "^1.11|^2.0",
|
||||||
|
"doctrine/orm": "^2.5",
|
||||||
|
"nyholm/psr7": "^1.1",
|
||||||
|
"symfony/browser-kit": "^4.3|^5.0",
|
||||||
|
"symfony/dom-crawler": "^4.3|^5.0",
|
||||||
|
"symfony/expression-language": "^4.3|^5.0",
|
||||||
|
"symfony/finder": "^4.3|^5.0",
|
||||||
|
"symfony/monolog-bridge": "^4.0|^5.0",
|
||||||
|
"symfony/monolog-bundle": "^3.2",
|
||||||
|
"symfony/phpunit-bridge": "^4.3.5|^5.0",
|
||||||
|
"symfony/psr-http-message-bridge": "^1.1",
|
||||||
|
"symfony/security-bundle": "^4.3|^5.0",
|
||||||
|
"symfony/twig-bundle": "^4.3|^5.0",
|
||||||
|
"symfony/yaml": "^4.3|^5.0",
|
||||||
|
"twig/twig": "^1.34|^2.4|^3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/expression-language": "",
|
||||||
|
"symfony/psr-http-message-bridge": "To use the PSR-7 converters",
|
||||||
|
"symfony/security-bundle": ""
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "5.5.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Sensio\\Bundle\\FrameworkExtraBundle\\": "src/"
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "This bundle provides a way to configure your controllers with annotations",
|
||||||
|
"keywords": [
|
||||||
|
"annotations",
|
||||||
|
"controllers"
|
||||||
|
],
|
||||||
|
"time": "2019-10-16T18:54:45+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/cache",
|
"name": "symfony/cache",
|
||||||
"version": "v4.3.6",
|
"version": "v4.3.6",
|
||||||
|
@ -4215,6 +4345,74 @@
|
||||||
],
|
],
|
||||||
"time": "2019-10-04T21:18:34+00:00"
|
"time": "2019-10-04T21:18:34+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/maker-bundle",
|
||||||
|
"version": "v1.14.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/maker-bundle.git",
|
||||||
|
"reference": "5dfcbc400b168943f15a21d4283ad848605d9bc2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/5dfcbc400b168943f15a21d4283ad848605d9bc2",
|
||||||
|
"reference": "5dfcbc400b168943f15a21d4283ad848605d9bc2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"doctrine/inflector": "^1.2",
|
||||||
|
"nikic/php-parser": "^4.0",
|
||||||
|
"php": "^7.0.8",
|
||||||
|
"symfony/config": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/console": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/finder": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/doctrine-bundle": "^1.8|^2.0",
|
||||||
|
"doctrine/orm": "^2.3",
|
||||||
|
"friendsofphp/php-cs-fixer": "^2.8",
|
||||||
|
"friendsoftwig/twigcs": "^3.1.2",
|
||||||
|
"symfony/http-client": "^4.3|^5.0",
|
||||||
|
"symfony/phpunit-bridge": "^4.3|^5.0",
|
||||||
|
"symfony/process": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/security-core": "^3.4|^4.0|^5.0",
|
||||||
|
"symfony/yaml": "^3.4|^4.0|^5.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-bundle",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
||||||
|
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
||||||
|
"keywords": [
|
||||||
|
"code generator",
|
||||||
|
"generator",
|
||||||
|
"scaffold",
|
||||||
|
"scaffolding"
|
||||||
|
],
|
||||||
|
"time": "2019-11-04T13:50:13+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/mime",
|
"name": "symfony/mime",
|
||||||
"version": "v4.3.6",
|
"version": "v4.3.6",
|
||||||
|
@ -5753,126 +5951,6 @@
|
||||||
],
|
],
|
||||||
"time": "2019-06-12T12:03:37+00:00"
|
"time": "2019-06-12T12:03:37+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "nikic/php-parser",
|
|
||||||
"version": "v4.2.5",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
|
||||||
"reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b76bbc3c51f22c570648de48e8c2d941ed5e2cf2",
|
|
||||||
"reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-tokenizer": "*",
|
|
||||||
"php": ">=7.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"ircmaxell/php-yacc": "0.0.4",
|
|
||||||
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
|
|
||||||
},
|
|
||||||
"bin": [
|
|
||||||
"bin/php-parse"
|
|
||||||
],
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.2-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"PhpParser\\": "lib/PhpParser"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-3-Clause"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Nikita Popov"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A PHP parser written in PHP",
|
|
||||||
"keywords": [
|
|
||||||
"parser",
|
|
||||||
"php"
|
|
||||||
],
|
|
||||||
"time": "2019-10-25T18:33:07+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/maker-bundle",
|
|
||||||
"version": "v1.14.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/maker-bundle.git",
|
|
||||||
"reference": "5dfcbc400b168943f15a21d4283ad848605d9bc2"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/5dfcbc400b168943f15a21d4283ad848605d9bc2",
|
|
||||||
"reference": "5dfcbc400b168943f15a21d4283ad848605d9bc2",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"doctrine/inflector": "^1.2",
|
|
||||||
"nikic/php-parser": "^4.0",
|
|
||||||
"php": "^7.0.8",
|
|
||||||
"symfony/config": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/console": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/filesystem": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/finder": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/framework-bundle": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/http-kernel": "^3.4|^4.0|^5.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"doctrine/doctrine-bundle": "^1.8|^2.0",
|
|
||||||
"doctrine/orm": "^2.3",
|
|
||||||
"friendsofphp/php-cs-fixer": "^2.8",
|
|
||||||
"friendsoftwig/twigcs": "^3.1.2",
|
|
||||||
"symfony/http-client": "^4.3|^5.0",
|
|
||||||
"symfony/phpunit-bridge": "^4.3|^5.0",
|
|
||||||
"symfony/process": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/security-core": "^3.4|^4.0|^5.0",
|
|
||||||
"symfony/yaml": "^3.4|^4.0|^5.0"
|
|
||||||
},
|
|
||||||
"type": "symfony-bundle",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.0-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Bundle\\MakerBundle\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.",
|
|
||||||
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
|
|
||||||
"keywords": [
|
|
||||||
"code generator",
|
|
||||||
"generator",
|
|
||||||
"scaffold",
|
|
||||||
"scaffolding"
|
|
||||||
],
|
|
||||||
"time": "2019-11-04T13:50:13+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "symfony/process",
|
"name": "symfony/process",
|
||||||
"version": "v4.3.6",
|
"version": "v4.3.6",
|
||||||
|
|
|
@ -11,4 +11,5 @@ return [
|
||||||
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
|
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
|
||||||
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
|
||||||
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
Nelmio\ApiDocBundle\NelmioApiDocBundle::class => ['all' => true],
|
||||||
|
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
|
||||||
];
|
];
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
sensio_framework_extra:
|
||||||
|
router:
|
||||||
|
annotations: false
|
|
@ -2,10 +2,12 @@
|
||||||
|
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Owner;
|
||||||
use App\Entity\Poll;
|
use App\Entity\Poll;
|
||||||
use FOS\RestBundle\Controller\Annotations\Get;
|
use FOS\RestBundle\Controller\Annotations\Get;
|
||||||
use FOS\RestBundle\Controller\Annotations\Post;
|
use FOS\RestBundle\Controller\Annotations\Post;
|
||||||
use FOS\RestBundle\Controller\Annotations\Route;
|
use FOS\RestBundle\Controller\Annotations\Route;
|
||||||
|
use JMS\Serializer\SerializerBuilder;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|
||||||
|
@ -83,15 +85,46 @@ class DefaultController extends AbstractController {
|
||||||
public function newPollAction( Request $request ) {
|
public function newPollAction( Request $request ) {
|
||||||
|
|
||||||
$data = $request->getContent();
|
$data = $request->getContent();
|
||||||
$poll = $this->get( 'jms_serializer' )->deserialize( $data, Poll::class, 'json' );
|
|
||||||
|
|
||||||
$em = $this->getDoctrine()->getManager();
|
$serializer = SerializerBuilder::create()->build();
|
||||||
$em->persist( $poll );
|
$newpoll = $serializer->deserialize( $data, 'App\Entity\Poll', 'json' );
|
||||||
|
|
||||||
|
$newpoll->setAdminKey( uniqid() );
|
||||||
|
$newpoll->setCreationDate( new \DateTime() );
|
||||||
|
$newpoll->setModificationPolicy( 'none' );
|
||||||
|
$timeStamp = time() + ( 3600 * 24 * 90 ); // 90 days by default
|
||||||
|
$newpoll->setExpiracyDate( ( new \DateTime() )->setTimestamp( $timeStamp ),
|
||||||
|
new \DateTimeZone( 'Europe/Paris' ) );
|
||||||
|
$data = json_decode( $data, true );
|
||||||
|
// die( $data );
|
||||||
|
$em = $this->getDoctrine()->getRepository( Owner::class );
|
||||||
|
$foundOwner = $em->findByEmail( $data[ 'owner' ][ 'email' ] );
|
||||||
|
die( $foundOwner );
|
||||||
|
$userWasFound = false;
|
||||||
|
if ( ! $foundOwner ) {
|
||||||
|
//create a new owner
|
||||||
|
$owner = new Owner();
|
||||||
|
|
||||||
|
$owner->setPseudo( $data[ 'owner' ][ 'pseudo' ] );
|
||||||
|
$owner->setEmail( $data[ 'owner' ][ 'email' ] );
|
||||||
|
$foundOwner = $owner;
|
||||||
|
} else {
|
||||||
|
$userWasFound = true;
|
||||||
|
}
|
||||||
|
// link the owner and the poll
|
||||||
|
$newpoll->setOwner( $foundOwner );
|
||||||
|
$foundOwner->addPoll( $newpoll );
|
||||||
|
$em->persist( $newpoll );
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
$precision = '';
|
||||||
|
if ( $userWasFound ) {
|
||||||
|
$precision = 'from an existing user : ' . $foundOwner->getEmail();
|
||||||
|
}
|
||||||
|
|
||||||
return $this->json( [
|
return $this->json( [
|
||||||
'message' => 'you created a poll',
|
'message' => 'you created a poll ' . $precision,
|
||||||
'data' => $poll,
|
// 'data' => $jsonContent,
|
||||||
|
|
||||||
],
|
],
|
||||||
203 );
|
203 );
|
||||||
|
|
||||||
|
|
|
@ -5,96 +5,90 @@ namespace App\Entity;
|
||||||
use Doctrine\Common\Collections\ArrayCollection;
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
use Doctrine\Common\Collections\Collection;
|
use Doctrine\Common\Collections\Collection;
|
||||||
use Doctrine\ORM\Mapping as ORM;
|
use Doctrine\ORM\Mapping as ORM;
|
||||||
|
use JMS\Serializer\Annotation as Serializer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repository\OwnerRepository")
|
* @ORM\Entity(repositoryClass="App\Repository\OwnerRepository")
|
||||||
*/
|
*/
|
||||||
class Owner
|
class Owner {
|
||||||
{
|
/**
|
||||||
/**
|
* @ORM\Id()
|
||||||
* @ORM\Id()
|
* @ORM\GeneratedValue()
|
||||||
* @ORM\GeneratedValue()
|
* @ORM\Column(type="integer")
|
||||||
* @ORM\Column(type="integer")
|
*/
|
||||||
*/
|
private $id;
|
||||||
private $id;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
*/
|
* @Serializer\Type("string")
|
||||||
private $email;
|
*/
|
||||||
|
private $email;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
*/
|
* @Serializer\Type("string")
|
||||||
private $pseudo;
|
*/
|
||||||
|
private $pseudo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\OneToMany(targetEntity="App\Entity\Poll", mappedBy="owner")
|
* @ORM\OneToMany(targetEntity="App\Entity\Poll", mappedBy="owner",cascade={"persist"})
|
||||||
*/
|
* @Serializer\Type("App\Entity\Poll")
|
||||||
private $polls;
|
*/
|
||||||
|
private $polls;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct() {
|
||||||
{
|
$this->polls = new ArrayCollection();
|
||||||
$this->polls = new ArrayCollection();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function getId(): ?int
|
public function getId(): ?int {
|
||||||
{
|
return $this->id;
|
||||||
return $this->id;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function getEmail(): ?string
|
public function getEmail(): ?string {
|
||||||
{
|
return $this->email;
|
||||||
return $this->email;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function setEmail(string $email): self
|
public function setEmail( string $email ): self {
|
||||||
{
|
$this->email = $email;
|
||||||
$this->email = $email;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPseudo(): ?string
|
public function getPseudo(): ?string {
|
||||||
{
|
return $this->pseudo;
|
||||||
return $this->pseudo;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function setPseudo(string $pseudo): self
|
public function setPseudo( string $pseudo ): self {
|
||||||
{
|
$this->pseudo = $pseudo;
|
||||||
$this->pseudo = $pseudo;
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Collection|Poll[]
|
* @return Collection|Poll[]
|
||||||
*/
|
*/
|
||||||
public function getPolls(): Collection
|
public function getPolls(): Collection {
|
||||||
{
|
return $this->polls;
|
||||||
return $this->polls;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function addPoll(Poll $poll): self
|
public function addPoll( Poll $poll ): self {
|
||||||
{
|
if ( ! $this->polls->contains( $poll ) ) {
|
||||||
if (!$this->polls->contains($poll)) {
|
$this->polls[] = $poll;
|
||||||
$this->polls[] = $poll;
|
$poll->setOwner( $this );
|
||||||
$poll->setOwner($this);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function removePoll(Poll $poll): self
|
public function removePoll( Poll $poll ): self {
|
||||||
{
|
if ( $this->polls->contains( $poll ) ) {
|
||||||
if ($this->polls->contains($poll)) {
|
$this->polls->removeElement( $poll );
|
||||||
$this->polls->removeElement($poll);
|
// set the owning side to null (unless already changed)
|
||||||
// set the owning side to null (unless already changed)
|
if ( $poll->getOwner() === $this ) {
|
||||||
if ($poll->getOwner() === $this) {
|
$poll->setOwner( null );
|
||||||
$poll->setOwner(null);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@ use JMS\Serializer\Annotation as Serializer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repository\PollRepository")
|
* @ORM\Entity(repositoryClass="App\Repository\PollRepository")
|
||||||
* @Serializer\ExclusionPolicy("ALL")
|
|
||||||
*/
|
*/
|
||||||
class Poll {
|
class Poll {
|
||||||
/**
|
/**
|
||||||
|
@ -17,17 +16,20 @@ class Poll {
|
||||||
* @ORM\GeneratedValue()
|
* @ORM\GeneratedValue()
|
||||||
* @ORM\Column(type="integer")
|
* @ORM\Column(type="integer")
|
||||||
* @Serializer\Expose()
|
* @Serializer\Expose()
|
||||||
|
* @Serializer\Type("integer")
|
||||||
*/
|
*/
|
||||||
public $id;
|
public $id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
* @Serializer\Expose()
|
* @Serializer\Expose()
|
||||||
|
* @Serializer\Type("string")
|
||||||
*/
|
*/
|
||||||
public $title;
|
public $title;
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", length=255, nullable=true)
|
* @ORM\Column(type="string", length=255, nullable=true)
|
||||||
* @Serializer\Expose()
|
* @Serializer\Expose()
|
||||||
|
* @Serializer\Type("string")
|
||||||
*/
|
*/
|
||||||
private $customUrl;
|
private $customUrl;
|
||||||
|
|
||||||
|
@ -40,6 +42,7 @@ class Poll {
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", length=1000)
|
* @ORM\Column(type="string", length=1000)
|
||||||
* @Serializer\Expose()
|
* @Serializer\Expose()
|
||||||
|
* @Serializer\Type("string")
|
||||||
*/
|
*/
|
||||||
private $description;
|
private $description;
|
||||||
|
|
||||||
|
@ -55,21 +58,25 @@ class Poll {
|
||||||
private $expiracyDate;
|
private $expiracyDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="App\Entity\Owner", inversedBy="polls")
|
* @ORM\ManyToOne(targetEntity="App\Entity\Owner", inversedBy="polls",cascade={"persist"})
|
||||||
* @ORM\JoinColumn(nullable=false)
|
* @ORM\JoinColumn(nullable=false)
|
||||||
|
* @Serializer\Type("App\Entity\Owner")
|
||||||
*/
|
*/
|
||||||
private $owner;
|
private $owner;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* used to allow administration
|
* used to allow administration
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
|
* @Serializer\Type("string")
|
||||||
*/
|
*/
|
||||||
private $adminKey;
|
private $adminKey;
|
||||||
/**
|
/**
|
||||||
* kind of poll, text or date
|
* kind of poll, text or date
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
|
* @Serializer\Type("string")
|
||||||
|
* @Serializer\Expose()
|
||||||
*/
|
*/
|
||||||
private $kind;
|
public $kind;
|
||||||
/**
|
/**
|
||||||
* kind of way the people can modify the poll
|
* kind of way the people can modify the poll
|
||||||
* everybody - can modify votes
|
* everybody - can modify votes
|
||||||
|
@ -77,7 +84,7 @@ class Poll {
|
||||||
* nobody - no one can modify the votes (excepted admin), pray to have it right at first
|
* nobody - no one can modify the votes (excepted admin), pray to have it right at first
|
||||||
* @ORM\Column(type="string", length=255)
|
* @ORM\Column(type="string", length=255)
|
||||||
*/
|
*/
|
||||||
private $modificationPolicy;
|
public $modificationPolicy;
|
||||||
/**
|
/**
|
||||||
* send a mail on a new comment
|
* send a mail on a new comment
|
||||||
* @ORM\Column(type="boolean", nullable=true)
|
* @ORM\Column(type="boolean", nullable=true)
|
||||||
|
@ -100,7 +107,8 @@ class Poll {
|
||||||
private $showResultEvenIfPasswords;
|
private $showResultEvenIfPasswords;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\OneToMany(targetEntity="App\Entity\Vote", mappedBy="poll", orphanRemoval=true)
|
* @ORM\OneToMany(targetEntity="App\Entity\Vote", mappedBy="poll", orphanRemoval=true,cascade={"persist"})
|
||||||
|
* @Serializer\Type("App\Entity\Vote")
|
||||||
*/
|
*/
|
||||||
private $votes;
|
private $votes;
|
||||||
|
|
||||||
|
|
12
symfony.lock
12
symfony.lock
|
@ -210,6 +210,18 @@
|
||||||
"psr/log": {
|
"psr/log": {
|
||||||
"version": "1.1.0"
|
"version": "1.1.0"
|
||||||
},
|
},
|
||||||
|
"sensio/framework-extra-bundle": {
|
||||||
|
"version": "5.2",
|
||||||
|
"recipe": {
|
||||||
|
"repo": "github.com/symfony/recipes",
|
||||||
|
"branch": "master",
|
||||||
|
"version": "5.2",
|
||||||
|
"ref": "fb7e19da7f013d0d422fa9bce16f5c510e27609b"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"config/packages/sensio_framework_extra.yaml"
|
||||||
|
]
|
||||||
|
},
|
||||||
"symfony/cache": {
|
"symfony/cache": {
|
||||||
"version": "v4.3.5"
|
"version": "v4.3.5"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue