Vincent GUFFON 4 tahun lalu
induk
melakukan
956a4be7ee

+ 18 - 2
src/ApiResources/Profile/AccessProfile.php

@@ -54,6 +54,10 @@ class AccessProfile
      * @Groups({"access_profile_read"})
      */
     private $roles = [];
+    /**
+     * @Groups({"access_profile_read"})
+     */
+    private $activityYear;
     /**
      * @Groups({"access_profile_read"})
      */
@@ -142,7 +146,7 @@ class AccessProfile
         return $this->gender;
     }
 
-    public function setGender($gender): self
+    public function setGender(?string $gender): self
     {
         $this->gender = $gender;
         return $this;
@@ -153,7 +157,7 @@ class AccessProfile
         return $this->avatarId;
     }
 
-    public function setAvatarId(int $avatarId): self
+    public function setAvatarId(?int $avatarId): self
     {
         $this->avatarId = $avatarId;
         return $this;
@@ -226,4 +230,16 @@ class AccessProfile
         $this->originalAccess = $originalAccess;
         return $this;
     }
+
+    public function getActivityYear(): int
+    {
+        return $this->activityYear;
+    }
+
+    public function setActivityYear(int $activityYear): self
+    {
+        $this->activityYear = $activityYear;
+
+        return $this;
+    }
 }

+ 17 - 0
src/Entity/Access/Access.php

@@ -52,6 +52,11 @@ class Access implements UserInterface
      */
     private $adminAccess = false;
 
+    /**
+     * @ORM\Column(type="integer", nullable=true)
+     */
+    private $activityYear;
+
     /**
      * @ORM\ManyToOne(targetEntity=Person::class, cascade={"persist"})
      * @ORM\JoinColumn(nullable=false)
@@ -131,6 +136,18 @@ class Access implements UserInterface
         return $this;
     }
 
+    public function getActivityYear(): ?int
+    {
+        return $this->activityYear;
+    }
+
+    public function setActivityYear(int $activityYear): self
+    {
+        $this->activityYear = $activityYear;
+
+        return $this;
+    }
+
     public function getPerson(): ?Person
     {
         return $this->person;

+ 1 - 1
src/Entity/Person/Person.php

@@ -228,7 +228,7 @@ class Person implements UserInterface
         return $this;
     }
 
-    public function getImage(): File
+    public function getImage(): ?File
     {
         return $this->image;
     }

+ 2 - 1
src/Service/Access/AccessProfileCreator.php

@@ -98,7 +98,8 @@ class AccessProfileCreator
             ->setName($access->getPerson()->getName())
             ->setGivenName($access->getPerson()->getGivenName())
             ->setGender($access->getPerson()->getGender())
-            ->setAvatarId($access->getPerson()->getImage()->getId())
+            ->setActivityYear($access->getActivityYear())
+            ->setAvatarId($access->getPerson()->getImage() ? $access->getPerson()->getImage()->getId() : null)
         ;
     }
 }

+ 3 - 1
tests/Service/Access/AccessProfileCreatorTest.php

@@ -29,11 +29,13 @@ class AccessProfileCreatorTest extends TestCase
             ->setGivenName('Bar')
         ;
 
+        $today = new \DateTime();
         $this->access = new Access();
         $this->access
             ->setAdminAccess(true)
             ->setPerson($person)
             ->setOrganization(new Organization())
+            ->setActivityYear($today->format('Y'))
         ;
 
         $roleHierarchyMock = $this->getMockBuilder(RoleHierarchy::class)->disableOriginalConstructor()->getMock();
@@ -43,7 +45,7 @@ class AccessProfileCreatorTest extends TestCase
 
         $organizationProfileCreatorMock = $this->getMockBuilder(OrganizationProfileCreator::class)->disableOriginalConstructor()->getMock();
         $organizationProfileCreatorMock
-            ->method('getOrganizationProfile')
+            ->method('createCompleteOrganizationProfile')
             ->with($this->access->getOrganization())
             ->willReturn(new OrganizationProfile());