1
0
mirror of https://framagit.org/tykayn/date-poll-api synced 2023-08-25 08:23:11 +02:00

uniform creation key created_at and format C

This commit is contained in:
Tykayn 2021-04-27 10:30:45 +02:00 committed by tykayn
parent 7f7265c851
commit eaee01838d
6 changed files with 102 additions and 84 deletions

View File

@ -45,11 +45,11 @@ class MigrationController extends EmailsController {
$pdo_options[ PDO::ATTR_ERRMODE ] = PDO::ERRMODE_EXCEPTION; $pdo_options[ PDO::ATTR_ERRMODE ] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO( 'mysql:host=localhost;dbname=' . $this->getParameter( 'OLD_DATABASE_NAME' ), $bdd = new PDO( 'mysql:host=localhost;dbname=' . $this->getParameter( 'OLD_DATABASE_NAME' ),
$this->getParameter( 'OLD_DATABASE_USER' ), $this->getParameter( 'OLD_DATABASE_USER' ),
$this->getParameter( 'OLD_DATABASE_PASS' ), $this->getParameter( 'OLD_DATABASE_PASS' ),
$pdo_options ); $pdo_options );
$res_polls = $bdd->query( 'SELECT * FROM fd_poll' ); $res_polls = $bdd->query( 'SELECT * FROM fd_poll' );
while ( $d = $res_polls->fetch( PDO::FETCH_OBJ ) ) { while ( $d = $res_polls->fetch( PDO::FETCH_OBJ ) ) {
$debug .= " <br> ajout de sondage : " . $d->title . ' - ' . $d->id; $debug .= " <br> ajout de sondage : " . $d->title . ' - ' . $d->id;

View File

@ -2,6 +2,7 @@
namespace App\Entity; namespace App\Entity;
use App\Traits\TimeStampableTrait;
use DateTime; use DateTime;
use DateTimeInterface; use DateTimeInterface;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
@ -15,6 +16,9 @@ use JMS\Serializer\Annotation as Serializer;
* @Serializer\ExclusionPolicy("all") * @Serializer\ExclusionPolicy("all")
*/ */
class Choice { class Choice {
use TimeStampableTrait;
/** /**
* @ORM\Id() * @ORM\Id()
* @ORM\GeneratedValue() * @ORM\GeneratedValue()
@ -36,11 +40,7 @@ class Choice {
*/ */
public $url; public $url;
/**
* @ORM\Column(type="datetime", nullable=true)
* @Serializer\Type("datetime")
*/
public $dateTime;
/** /**
* @ORM\OneToMany(targetEntity="App\Entity\Vote", mappedBy="choice", cascade={"persist"}) * @ORM\OneToMany(targetEntity="App\Entity\Vote", mappedBy="choice", cascade={"persist"})
* @Serializer\Type("App\Entity\Vote") * @Serializer\Type("App\Entity\Vote")
@ -61,13 +61,18 @@ class Choice {
} }
} }
public function setDateTime( ?DateTimeInterface $dateTime ): self {
$this->dateTime = $dateTime;
return $this;
}
public function display() { public function display() {
return [ return [
'id' => $this->getId(), 'id' => $this->getId(),
'date' => $this->getDateTime(), 'created_at' => $this->getCreatedAtAsString(),
'name' => $this->getName(), 'name' => $this->getName(),
'url' => $this->getUrl(), 'url' => $this->getUrl(),
]; ];
} }
@ -75,16 +80,6 @@ class Choice {
return $this->id; return $this->id;
} }
public function getDateTime(): ?DateTimeInterface {
return $this->dateTime;
}
public function setDateTime( ?DateTimeInterface $dateTime ): self {
$this->dateTime = $dateTime;
return $this;
}
public function getName(): ?string { public function getName(): ?string {
return $this->name; return $this->name;
} }
@ -105,6 +100,10 @@ class Choice {
return $this; return $this;
} }
public function getDateTime(): ?DateTimeInterface {
return $this->dateTime;
}
public function getPoll(): ?Poll { public function getPoll(): ?Poll {
return $this->poll; return $this->poll;
} }

View File

@ -2,6 +2,7 @@
namespace App\Entity; namespace App\Entity;
use App\Traits\TimeStampableTrait;
use DateTime; use DateTime;
use DateTimeInterface; use DateTimeInterface;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -12,6 +13,9 @@ use JMS\Serializer\Annotation as Serializer;
* @Serializer\ExclusionPolicy("all") * @Serializer\ExclusionPolicy("all")
*/ */
class Comment { class Comment {
use TimeStampableTrait;
/** /**
* @ORM\Id() * @ORM\Id()
* @ORM\GeneratedValue() * @ORM\GeneratedValue()
@ -40,13 +44,6 @@ class Comment {
*/ */
private $text; private $text;
/**
* @ORM\Column(type="datetime")
* @Serializer\Type("datetime")
* @Serializer\Expose()
*/
private $createdAt;
/** /**
* @ORM\ManyToOne(targetEntity="App\Entity\Poll", inversedBy="comments") * @ORM\ManyToOne(targetEntity="App\Entity\Poll", inversedBy="comments")
*/ */
@ -56,12 +53,18 @@ class Comment {
$this->setCreatedAt( new DateTime() ); $this->setCreatedAt( new DateTime() );
} }
public function setCreatedAt( DateTimeInterface $createdAt ): self {
$this->createdAt = $createdAt;
return $this;
}
function display() { function display() {
return [ return [
'id' => $this->getId(), 'id' => $this->getId(),
'text' => $this->getText(), 'text' => $this->getText(),
'pseudo' => $this->getOwner()->getPseudo(), 'pseudo' => $this->getOwner()->getPseudo(),
'date' => $this->getCreatedAt(), 'created_at' => $this->getCreatedAtAsString(),
]; ];
} }
@ -93,12 +96,6 @@ class Comment {
return $this->createdAt; return $this->createdAt;
} }
public function setCreatedAt( DateTimeInterface $createdAt ): self {
$this->createdAt = $createdAt;
return $this;
}
public function getPoll(): ?Poll { public function getPoll(): ?Poll {
return $this->poll; return $this->poll;
} }

View File

@ -2,6 +2,7 @@
namespace App\Entity; namespace App\Entity;
use App\Traits\TimeStampableTrait;
use DateTime; use DateTime;
use DateTimeInterface; use DateTimeInterface;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
@ -13,6 +14,8 @@ use JMS\Serializer\Annotation as Serializer;
* @ORM\Entity(repositoryClass="App\Repository\OwnerRepository") * @ORM\Entity(repositoryClass="App\Repository\OwnerRepository")
*/ */
class Owner { class Owner {
use TimeStampableTrait;
/** /**
* @ORM\Column(type="string", length=255) * @ORM\Column(type="string", length=255)
* @Serializer\Type("string") * @Serializer\Type("string")
@ -51,10 +54,7 @@ class Owner {
* @ORM\Column(type="string", length=255) * @ORM\Column(type="string", length=255)
*/ */
private $modifierToken; private $modifierToken;
/**
* @ORM\Column(type="datetime" , options={"default"="CURRENT_TIMESTAMP"})
*/
private $createdAt;
/** /**
* @ORM\Column(type="datetime" , options={"default"="CURRENT_TIMESTAMP"},nullable=true) * @ORM\Column(type="datetime" , options={"default"="CURRENT_TIMESTAMP"},nullable=true)
*/ */
@ -68,6 +68,45 @@ class Owner {
$this->setModifierToken( uniqid() ); $this->setModifierToken( uniqid() );
} }
public function setCreatedAt( DateTimeInterface $createdAt ): self {
$this->createdAt = $createdAt;
return $this;
}
public function display() {
return [
'pseudo' => $this->getPseudo(),
];
}
public function getPseudo(): ?string {
return $this->pseudo;
}
public function setPseudo( string $pseudo ): self {
$this->pseudo = $pseudo;
return $this;
}
public function displayForAdmin() {
return [
'pseudo' => $this->getPseudo(),
'modifier_token' => $this->getModifierToken(),
'created_at' => $this->getCreatedAtAsString(),
];
}
public function getModifierToken(): ?string {
return $this->modifierToken;
}
public function setModifierToken( string $modifierToken ): self {
$this->modifierToken = $modifierToken;
return $this;
}
public function getId(): ?int { public function getId(): ?int {
return $this->id; return $this->id;
@ -83,16 +122,6 @@ class Owner {
return $this; return $this;
} }
public function getPseudo(): ?string {
return $this->pseudo;
}
public function setPseudo( string $pseudo ): self {
$this->pseudo = $pseudo;
return $this;
}
/** /**
* @return Collection|Poll[] * @return Collection|Poll[]
*/ */
@ -177,16 +206,6 @@ class Owner {
return $this; return $this;
} }
public function getModifierToken(): ?string {
return $this->modifierToken;
}
public function setModifierToken( string $modifierToken ): self {
$this->modifierToken = $modifierToken;
return $this;
}
public function addComment( Comment $comment ): self { public function addComment( Comment $comment ): self {
if ( ! $this->comments->contains( $comment ) ) { if ( ! $this->comments->contains( $comment ) ) {
$this->comments[] = $comment; $this->comments[] = $comment;
@ -212,12 +231,6 @@ class Owner {
return $this->createdAt; return $this->createdAt;
} }
public function setCreatedAt( DateTimeInterface $createdAt ): self {
$this->createdAt = $createdAt;
return $this;
}
public function getRequestedPollsDate() { public function getRequestedPollsDate() {
return $this->requestedPollsDate; return $this->requestedPollsDate;
} }

View File

@ -254,11 +254,11 @@ class Poll {
} }
public function displayForAdmin() { public function displayForAdmin() {
$content = $this->display(); $content = $this->display();
$content[ 'owner_modifier_token' ] = $this->getOwner()->getModifierToken(); $content[ 'owner' ] = $this->getOwner()->displayForAdmin();
$content[ 'admin_key' ] = $this->getAdminKey(); $content[ 'admin_key' ] = $this->getAdminKey();
$content[ 'password_hash' ] = $this->getPassword(); $content[ 'password_hash' ] = $this->getPassword();
$content[ 'id' ] = $this->getId(); $content[ 'id' ] = $this->getId();
return $content; return $content;
} }
@ -282,7 +282,8 @@ class Poll {
return [ return [
'title' => $this->getTitle(), 'title' => $this->getTitle(),
'creation_date' => $this->getCreationDate()->format( 'c' ), 'description' => $this->getDescription(),
'created_at' => $this->getCreationDate()->format( 'c' ),
'expiracy_date' => $this->getExpiracyDate()->format( 'c' ), 'expiracy_date' => $this->getExpiracyDate()->format( 'c' ),
'votes_max' => $this->getVotesMax(), 'votes_max' => $this->getVotesMax(),
'choices_max' => $this->getChoicesMax(), 'choices_max' => $this->getChoicesMax(),
@ -396,6 +397,16 @@ class Poll {
return $this; return $this;
} }
public function getDescription(): ?string {
return $this->description;
}
public function setDescription( string $description ): self {
$this->description = $description;
return $this;
}
public function getCreationDate(): ?DateTimeInterface { public function getCreationDate(): ?DateTimeInterface {
return $this->creationDate; return $this->creationDate;
} }
@ -556,16 +567,6 @@ class Poll {
return $this->votes; return $this->votes;
} }
public function getDescription(): ?string {
return $this->description;
}
public function setDescription( string $description ): self {
$this->description = $description;
return $this;
}
public function getCustomUrl(): ?string { public function getCustomUrl(): ?string {
return $this->customUrl; return $this->customUrl;
} }

8
src/Traits/RandomTrait.php Executable file
View File

@ -0,0 +1,8 @@
<?php
namespace App\Traits;
trait RandomTrait {
}