mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-20 22:53:49 +00:00
serializer on accompanying course
Two new routes: * `GET /{_locale}/person/api/1.0/accompanying-course/{parcours_id}/show.json`: get a json representation for a course * `POST /{_locale}/person/api/1.0/accompanying-course/{parcours_id}/participation.json`: add a particitipation to course. Usage: `curl -v --cookie "PHPSESSID=fed98aa23e40cb36e630f84155aea3bb;" -X POST --data '{ "id": 481 }' http://localhost:8001/fr/person/api/1.0/accompanying-course/270/participation.json` Will add the person with id "481" to the course.
This commit is contained in:
@@ -103,7 +103,7 @@ class AccompanyingPeriod
|
||||
* @ORM\Column(type="text")
|
||||
*/
|
||||
private $remark = '';
|
||||
|
||||
|
||||
/**
|
||||
* @var Collection
|
||||
*
|
||||
@@ -112,7 +112,7 @@ class AccompanyingPeriod
|
||||
* )
|
||||
*/
|
||||
private $comments;
|
||||
|
||||
|
||||
/**
|
||||
* @var Collection
|
||||
*
|
||||
@@ -121,7 +121,7 @@ class AccompanyingPeriod
|
||||
* cascade={"persist", "remove", "merge", "detach"})
|
||||
*/
|
||||
private $participations;
|
||||
|
||||
|
||||
/**
|
||||
* @var AccompanyingPeriod\ClosingMotive
|
||||
*
|
||||
@@ -130,19 +130,19 @@ class AccompanyingPeriod
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $closingMotive = null;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity=User::class)
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $user;
|
||||
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity=User::class)
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $createdBy;
|
||||
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @ORM\Column(type="string", length=32, nullable=true)
|
||||
@@ -154,7 +154,7 @@ class AccompanyingPeriod
|
||||
* @ORM\JoinColumn(nullable=true)
|
||||
*/
|
||||
private $origin;
|
||||
|
||||
|
||||
/**
|
||||
* @var string
|
||||
* @ORM\Column(type="string", nullable=true)
|
||||
@@ -214,7 +214,7 @@ class AccompanyingPeriod
|
||||
* )
|
||||
*/
|
||||
private $resources;
|
||||
|
||||
|
||||
/**
|
||||
* AccompanyingPeriod constructor.
|
||||
*
|
||||
@@ -246,7 +246,7 @@ class AccompanyingPeriod
|
||||
public function setOpeningDate($openingDate)
|
||||
{
|
||||
$this->openingDate = $openingDate;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ class AccompanyingPeriod
|
||||
public function setClosingDate($closingDate)
|
||||
{
|
||||
$this->closingDate = $closingDate;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -285,7 +285,7 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->closingDate;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
@@ -298,43 +298,43 @@ class AccompanyingPeriod
|
||||
if ($this->getClosingDate() === null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public function setRemark(string $remark): self
|
||||
{
|
||||
if ($remark === null) {
|
||||
$remark = '';
|
||||
}
|
||||
|
||||
|
||||
$this->remark = $remark;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getRemark(): string
|
||||
{
|
||||
return $this->remark;
|
||||
}
|
||||
|
||||
|
||||
public function getComments(): Collection
|
||||
{
|
||||
return $this->comments;
|
||||
}
|
||||
|
||||
|
||||
public function addComment(Comment $comment): self
|
||||
{
|
||||
$this->comments[] = $comment;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function removeComment(Comment $comment): void
|
||||
{
|
||||
$this->comments->removeElement($comment);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get Participations Collection
|
||||
*/
|
||||
@@ -342,7 +342,7 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->participations;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This private function scan Participations Collection,
|
||||
* searching for a given Person
|
||||
@@ -357,7 +357,7 @@ class AccompanyingPeriod
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This public function is the same but return only true or false
|
||||
*/
|
||||
@@ -365,7 +365,7 @@ class AccompanyingPeriod
|
||||
{
|
||||
return ($this->participationsContainsPerson($person) === null) ? false : true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add Person
|
||||
*/
|
||||
@@ -373,36 +373,36 @@ class AccompanyingPeriod
|
||||
{
|
||||
$participation = new AccompanyingPeriodParticipation($this, $person);
|
||||
$this->participations[] = $participation;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove Person
|
||||
*/
|
||||
public function removePerson(Person $person): void
|
||||
{
|
||||
$participation = $this->participationsContainsPerson($person);
|
||||
|
||||
|
||||
if (! null === $participation) {
|
||||
$participation->setEndDate(new \DateTimeImmutable('now'));
|
||||
$this->participations->removeElement($participation);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function getClosingMotive(): ?ClosingMotive
|
||||
{
|
||||
return $this->closingMotive;
|
||||
}
|
||||
|
||||
|
||||
public function setClosingMotive(ClosingMotive $closingMotive = null): self
|
||||
{
|
||||
$this->closingMotive = $closingMotive;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* If the period can be reopened.
|
||||
*
|
||||
@@ -414,7 +414,7 @@ class AccompanyingPeriod
|
||||
if ($this->isOpen() === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$participation = $this->participationsContainsPerson($person);
|
||||
if (!null === $participation)
|
||||
{
|
||||
@@ -422,10 +422,10 @@ class AccompanyingPeriod
|
||||
$periods = $person->getAccompanyingPeriodsOrdered();
|
||||
return end($periods) === $this;
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
public function reOpen(): void
|
||||
@@ -442,14 +442,14 @@ class AccompanyingPeriod
|
||||
if ($this->isOpen()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (! $this->isClosingAfterOpening()) {
|
||||
$context->buildViolation('The date of closing is before the date of opening')
|
||||
->atPath('dateClosing')
|
||||
->addViolation();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns true if the closing date is after the opening date.
|
||||
*
|
||||
@@ -467,16 +467,16 @@ class AccompanyingPeriod
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function getUser(): ?User
|
||||
{
|
||||
return $this->user;
|
||||
}
|
||||
|
||||
|
||||
function setUser(User $user): self
|
||||
{
|
||||
$this->user = $user;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -484,38 +484,38 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->origin;
|
||||
}
|
||||
|
||||
|
||||
public function setOrigin(Origin $origin): self
|
||||
{
|
||||
$this->origin = $origin;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getRequestorPerson(): ?Person
|
||||
{
|
||||
return $this->requestorPerson;
|
||||
}
|
||||
|
||||
|
||||
public function setRequestorPerson(Person $requestorPerson): self
|
||||
{
|
||||
$this->requestorPerson = ($this->requestorThirdParty === null) ? $requestorPerson : null;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getRequestorThirdParty(): ?ThirdParty
|
||||
{
|
||||
return $this->requestorThirdParty;
|
||||
}
|
||||
|
||||
|
||||
public function setRequestorThirdParty(ThirdParty $requestorThirdParty): self
|
||||
{
|
||||
$this->requestorThirdParty = ($this->requestorPerson === null) ? $requestorThirdParty : null;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return Person|ThirdParty
|
||||
*/
|
||||
@@ -523,48 +523,48 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->requestorPerson ?? $this->requestorThirdParty;
|
||||
}
|
||||
|
||||
|
||||
public function isRequestorAnonymous(): bool
|
||||
{
|
||||
return $this->requestorAnonymous;
|
||||
}
|
||||
|
||||
|
||||
public function setRequestorAnonymous(bool $requestorAnonymous): self
|
||||
{
|
||||
$this->requestorAnonymous = $requestorAnonymous;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function isEmergency(): bool
|
||||
{
|
||||
return $this->emergency;
|
||||
}
|
||||
|
||||
|
||||
public function setEmergency(bool $emergency): self
|
||||
{
|
||||
$this->emergency = $emergency;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function isConfidential(): bool
|
||||
{
|
||||
return $this->confidential;
|
||||
}
|
||||
|
||||
|
||||
public function setConfidential(bool $confidential): self
|
||||
{
|
||||
$this->confidential = $confidential;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getCreatedBy(): ?User
|
||||
{
|
||||
return $this->createdBy;
|
||||
}
|
||||
|
||||
|
||||
public function setCreatedBy(User $createdBy): self
|
||||
{
|
||||
$this->createdBy = $createdBy;
|
||||
@@ -576,11 +576,11 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->step;
|
||||
}
|
||||
|
||||
|
||||
public function setStep(string $step): self
|
||||
{
|
||||
$this->step = $step;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -588,45 +588,57 @@ class AccompanyingPeriod
|
||||
{
|
||||
return $this->intensity;
|
||||
}
|
||||
|
||||
|
||||
public function setIntensity(string $intensity): self
|
||||
{
|
||||
$this->intensity = $intensity;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getScopes(): Collection
|
||||
{
|
||||
return $this->scopes;
|
||||
}
|
||||
|
||||
|
||||
public function addScope(Scope $scope): self
|
||||
{
|
||||
$this->scopes[] = $scope;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function removeScope(Scope $scope): void
|
||||
{
|
||||
$this->scopes->removeElement($scope);
|
||||
}
|
||||
|
||||
|
||||
public function getResources(): Collection
|
||||
{
|
||||
return $this->resources;
|
||||
}
|
||||
|
||||
|
||||
public function addResource(Resource $resource): self
|
||||
{
|
||||
$this->resources[] = $resource;
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function removeResource(Resource $resource): void
|
||||
{
|
||||
$this->resources->removeElement($resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of all persons which are participating to this course
|
||||
*/
|
||||
public function getPersons(): Collection
|
||||
{
|
||||
return $this->participations->map(
|
||||
function(AccompanyingPeriodParticipation $participation) {
|
||||
return $participation->getPerson();
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user