浏览代码

complete creation date and author update during organization creation

Olivier Massot 1 年之前
父节点
当前提交
08f6d1fa7a

+ 25 - 0
src/ApiResources/Organization/OrganizationMemberCreationRequest.php

@@ -69,6 +69,9 @@ class OrganizationMemberCreationRequest
     )]
     )]
     private string $email;
     private string $email;
 
 
+    private ?\DateTimeInterface $creationDate = null;
+    private ?int $authorId = null;
+
     public function getUsername(): string
     public function getUsername(): string
     {
     {
         return $this->username;
         return $this->username;
@@ -211,4 +214,26 @@ class OrganizationMemberCreationRequest
         $this->email = $email;
         $this->email = $email;
         return $this;
         return $this;
     }
     }
+
+    public function getCreationDate(): ?\DateTimeInterface
+    {
+        return $this->creationDate;
+    }
+
+    public function setCreationDate(?\DateTimeInterface $creationDate): self
+    {
+        $this->creationDate = $creationDate;
+        return $this;
+    }
+
+    public function getAuthorId(): ?int
+    {
+        return $this->authorId;
+    }
+
+    public function setAuthorId(?int $authorId): self
+    {
+        $this->authorId = $authorId;
+        return $this;
+    }
 }
 }

+ 3 - 0
src/Entity/Person/PersonAddressPostal.php

@@ -6,6 +6,7 @@ namespace App\Entity\Person;
 
 
 use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Metadata\ApiResource;
 use App\Entity\Core\AddressPostal;
 use App\Entity\Core\AddressPostal;
+use App\Entity\Traits\CreatedOnAndByTrait;
 use App\Enum\Person\AddressPostalPersonTypeEnum;
 use App\Enum\Person\AddressPostalPersonTypeEnum;
 use App\Repository\Person\PersonAddressPostalRepository;
 use App\Repository\Person\PersonAddressPostalRepository;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
@@ -20,6 +21,8 @@ use Symfony\Component\Serializer\Annotation\Groups;
 #[ORM\Entity(repositoryClass: PersonAddressPostalRepository::class)]
 #[ORM\Entity(repositoryClass: PersonAddressPostalRepository::class)]
 class PersonAddressPostal
 class PersonAddressPostal
 {
 {
+    use CreatedOnAndByTrait;
+
     #[ORM\Id]
     #[ORM\Id]
     #[ORM\Column]
     #[ORM\Column]
     #[ORM\GeneratedValue]
     #[ORM\GeneratedValue]

+ 19 - 0
src/Service/Organization/OrganizationFactory.php

@@ -256,6 +256,9 @@ class OrganizationFactory
         // Création du président (si renseigné)
         // Création du président (si renseigné)
         $presidentCreationRequest = $organizationCreationRequest->getPresident();
         $presidentCreationRequest = $organizationCreationRequest->getPresident();
         if ($presidentCreationRequest !== null) {
         if ($presidentCreationRequest !== null) {
+            $presidentCreationRequest->setCreationDate($organizationCreationRequest->getCreationDate());
+            $presidentCreationRequest->setAuthorId($organizationCreationRequest->getAuthorId());
+
             $presidentAccess = $this->makeAccess($presidentCreationRequest);
             $presidentAccess = $this->makeAccess($presidentCreationRequest);
             $organization->addAccess($presidentAccess);
             $organization->addAccess($presidentAccess);
             $this->logger->debug(" - President access created");
             $this->logger->debug(" - President access created");
@@ -264,6 +267,9 @@ class OrganizationFactory
         // Création du directeur (si renseigné)
         // Création du directeur (si renseigné)
         $directorCreationRequest = $organizationCreationRequest->getDirector();
         $directorCreationRequest = $organizationCreationRequest->getDirector();
         if ($directorCreationRequest !== null) {
         if ($directorCreationRequest !== null) {
+            $directorCreationRequest->setCreationDate($organizationCreationRequest->getCreationDate());
+            $directorCreationRequest->setAuthorId($organizationCreationRequest->getAuthorId());
+
             $directorAccess = $this->makeAccess($directorCreationRequest);
             $directorAccess = $this->makeAccess($directorCreationRequest);
             $organization->addAccess($directorAccess);
             $organization->addAccess($directorAccess);
             $this->logger->debug(" - Director access created");
             $this->logger->debug(" - Director access created");
@@ -462,6 +468,8 @@ class OrganizationFactory
         $adminAccess = new Access();
         $adminAccess = new Access();
         $adminAccess->setAdminAccess(true);
         $adminAccess->setAdminAccess(true);
         $adminAccess->setPerson($admin);
         $adminAccess->setPerson($admin);
+        $adminAccess->setCreateDate($organizationCreationRequest->getCreationDate());
+        $adminAccess->setCreatedBy($organizationCreationRequest->getAuthorId());
 
 
         return $adminAccess;
         return $adminAccess;
     }
     }
@@ -529,10 +537,15 @@ class OrganizationFactory
 
 
             $contactPoint = $this->makePersonContactPoint($creationRequestData);
             $contactPoint = $this->makePersonContactPoint($creationRequestData);
             $person->addContactPoint($contactPoint);
             $person->addContactPoint($contactPoint);
+
+            $person->setCreateDate($creationRequestData->getCreationDate());
+            $person->setCreatedBy($creationRequestData->getAuthorId());
         }
         }
 
 
         $access = new Access();
         $access = new Access();
         $access->setPerson($person);
         $access->setPerson($person);
+        $access->setCreateDate($creationRequestData->getCreationDate());
+        $access->setCreatedBy($creationRequestData->getAuthorId());
 
 
         return $access;
         return $access;
     }
     }
@@ -553,6 +566,8 @@ class OrganizationFactory
         $addressPostal->setStreetAddressThird($organizationMemberCreationRequest->getStreetAddress3());
         $addressPostal->setStreetAddressThird($organizationMemberCreationRequest->getStreetAddress3());
         $addressPostal->setPostalCode($organizationMemberCreationRequest->getPostalCode());
         $addressPostal->setPostalCode($organizationMemberCreationRequest->getPostalCode());
         $addressPostal->setAddressCity($organizationMemberCreationRequest->getCity());
         $addressPostal->setAddressCity($organizationMemberCreationRequest->getCity());
+        $addressPostal->setCreateDate($organizationMemberCreationRequest->getCreationDate());
+        $addressPostal->setCreatedBy($organizationMemberCreationRequest->getAuthorId());
 
 
         $country = $this->countryRepository->find($organizationMemberCreationRequest->getCountryId());
         $country = $this->countryRepository->find($organizationMemberCreationRequest->getCountryId());
         $addressPostal->setAddressCountry($country);
         $addressPostal->setAddressCountry($country);
@@ -560,6 +575,8 @@ class OrganizationFactory
         $personAddressPostal = new PersonAddressPostal();
         $personAddressPostal = new PersonAddressPostal();
         $personAddressPostal->setAddressPostal($addressPostal);
         $personAddressPostal->setAddressPostal($addressPostal);
         $personAddressPostal->setType(AddressPostalPersonTypeEnum::ADDRESS_PRINCIPAL);
         $personAddressPostal->setType(AddressPostalPersonTypeEnum::ADDRESS_PRINCIPAL);
+        $personAddressPostal->setCreateDate($organizationMemberCreationRequest->getCreationDate());
+        $personAddressPostal->setCreatedBy($organizationMemberCreationRequest->getAuthorId());
 
 
         return $personAddressPostal;
         return $personAddressPostal;
     }
     }
@@ -587,6 +604,8 @@ class OrganizationFactory
             $contactPoint->setMobilPhone($mobileNumber);
             $contactPoint->setMobilPhone($mobileNumber);
         }
         }
 
 
+        $contactPoint->setCreateDate($organizationMemberCreationRequest->getCreationDate());
+        $contactPoint->setCreatedBy($organizationMemberCreationRequest->getAuthorId());
         return $contactPoint;
         return $contactPoint;
     }
     }