소스 검색

fix after code review

Vincent GUFFON 3 년 전
부모
커밋
faf7a784d4
37개의 변경된 파일158개의 추가작업 그리고 287개의 파일을 삭제
  1. 2 2
      config/packages/doctrine.yaml
  2. 2 2
      src/Annotation/ActivityYearConstraintAware.php
  3. 6 2
      src/DataPersister/Access/AdminAccessDataPersister.php
  4. 1 1
      src/DataPersister/Organization/OrganizationDataPersister.php
  5. 3 4
      src/DataPersister/Organization/ParametersDataPersister.php
  6. 31 0
      src/Doctrine/AbstractExtension.php
  7. 3 15
      src/Doctrine/Access/CurrentAccessExtension.php
  8. 3 15
      src/Doctrine/Access/CurrentUserPersonalizedListExtension.php
  9. 3 15
      src/Doctrine/Billing/CurrentResidenceAreaExtension.php
  10. 4 17
      src/Doctrine/Booking/CurrentCoursesExtension.php
  11. 3 15
      src/Doctrine/Core/AllowedAddressPostalExtension.php
  12. 3 15
      src/Doctrine/Core/CurrentNotificationUserExtension.php
  13. 3 15
      src/Doctrine/Core/CurrentUserNotificationExtension.php
  14. 3 15
      src/Doctrine/Education/CurrentCycleExtension.php
  15. 3 16
      src/Doctrine/Education/CurrentEducationNotationConfigExtension.php
  16. 3 15
      src/Doctrine/Education/CurrentEducationTimingExtension.php
  17. 3 15
      src/Doctrine/Network/CurrentNetworkOrganizationExtension.php
  18. 3 15
      src/Doctrine/Organization/CurrentOrganizationAddressPostalExtension.php
  19. 3 15
      src/Doctrine/Organization/CurrentOrganizationArticleExtension.php
  20. 3 15
      src/Doctrine/Organization/CurrentOrganizationExtension.php
  21. 2 2
      src/Entity/Booking/Course.php
  22. 5 2
      src/Entity/Education/EducationNotationConfig.php
  23. 6 3
      src/Entity/Organization/Parameters.php
  24. 6 7
      src/EventListener/DoctrineFilter/DoctrineFilterListener.php
  25. 1 1
      src/Filter/DoctrineFilter/AbstractTimeFilter.php
  26. 11 13
      src/Filter/DoctrineFilter/ActivityYearFilter.php
  27. 1 1
      src/Filter/DoctrineFilter/DateTimeFilter.php
  28. 3 0
      src/OpenApi/OpenApiFactory.php
  29. 2 2
      src/Repository/Booking/CourseRepository.php
  30. 2 2
      src/Service/Constraint/ActivityYearConstraint.php
  31. 4 5
      src/Service/Core/ContactPointUtils.php
  32. 2 2
      src/Service/Mobyt/MobytService.php
  33. 1 1
      src/Service/OnChange/Organization/OnOrganizationChange.php
  34. 6 6
      src/Service/OnChange/Organization/OnParametersChange.php
  35. 3 1
      src/Validator/Organization/Parameters/MobytCredentialsValidator.php
  36. 6 6
      tests/Service/Mobyt/MobytServiceTest.php
  37. 9 9
      tests/Service/Organization/OnParametersChangeTest.php

+ 2 - 2
config/packages/doctrine.yaml

@@ -25,8 +25,8 @@ doctrine:
                     date_time_filter:
                         class: App\Filter\DoctrineFilter\DateTimeFilter
                         enabled: true
-                    year_time_filter:
-                        class: App\Filter\DoctrineFilter\YearTimeFilter
+                    activity_year_filter:
+                        class: App\Filter\DoctrineFilter\ActivityYearFilter
                         enabled: true
                 connection: default
                 auto_mapping: true

+ 2 - 2
src/Annotation/YearConstraintAware.php → src/Annotation/ActivityYearConstraintAware.php

@@ -6,10 +6,10 @@ namespace App\Annotation;
 use Attribute;
 
 /**
- * Classe YearConstraintAware qui gère l'annotation pour le Doctrine filter
+ * Classe ActivityYearConstraintAware qui gère l'annotation pour le Doctrine filter
  */
 #[Attribute(Attribute::TARGET_CLASS)]
-final class YearConstraintAware
+final class ActivityYearConstraintAware
 {
     public string $startYearFieldName;
     public string $endYearFieldName;

+ 6 - 2
src/DataPersister/Access/AdminAccessDataPersister.php

@@ -42,10 +42,14 @@ class AdminAccessDataPersister implements ContextAwareDataPersisterInterface
         $access = $this->security->getUser();
 
         $administrator = $this->accessUtils->getAdminAccess($access->getOrganization());
-        if(!$administrator) return null;
+        if(!$administrator){
+            throw new Exception('administrator_not_found', 404);
+        }
 
         $contactPoint = $this->contactPointUtils->getPersonContactPointPrincipal($administrator);
-        if(!$contactPoint) return null;
+        if(!$contactPoint){
+            throw new Exception('administrator_contact_point_not_found', 404);
+        }
 
         $contactPoint->setEmail($data->getEmail());
         $this->entityManager->flush();

+ 1 - 1
src/DataPersister/Organization/OrganizationDataPersister.php

@@ -5,7 +5,7 @@ namespace App\DataPersister\Organization;
 
 use ApiPlatform\Core\DataPersister\ContextAwareDataPersisterInterface;
 use App\Entity\Organization\Organization;
-use App\Service\Organization\OnOrganizationChange;
+use App\Service\OnChange\Organization\OnOrganizationChange;
 use Exception;
 
 /**

+ 3 - 4
src/DataPersister/Organization/ParametersDataPersister.php

@@ -6,8 +6,7 @@ namespace App\DataPersister\Organization;
 use ApiPlatform\Core\DataPersister\ContextAwareDataPersisterInterface;
 use App\Entity\Organization\Parameters;
 use App\Message\Command\Parameters\AverageChange;
-use App\Message\Command\Parameters\MusicalDateChange;
-use App\Service\Organization\OnParametersChange;
+use App\Service\OnChange\Organization\OnParametersChange;
 use Exception;
 use Symfony\Component\Messenger\MessageBusInterface;
 
@@ -51,12 +50,12 @@ class ParametersDataPersister implements ContextAwareDataPersisterInterface
 
     public function prePersist(Parameters $previousParameters, Parameters $parameters): void{
         if($previousParameters->getAdvancedEducationNotationType() != $parameters->getAdvancedEducationNotationType()){
-            $this->onParametersChange->onAdvancedEducationNotationType($parameters);
+            $this->onParametersChange->onAdvancedEducationNotationTypeChange($parameters);
         }
 
         //La date de début d'activité change
         if($previousParameters->getMusicalDate() != $parameters->getMusicalDate()){
-            $this->onParametersChange->onMusicalDate($parameters->getOrganization(), $previousParameters->getMusicalDate());
+            $this->onParametersChange->onMusicalDateChange($parameters->getOrganization(), $previousParameters->getMusicalDate());
         }
     }
 

+ 31 - 0
src/Doctrine/AbstractExtension.php

@@ -0,0 +1,31 @@
+<?php
+declare(strict_types=1);
+
+namespace App\Doctrine;
+
+use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
+use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
+use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use Doctrine\ORM\QueryBuilder;
+use Exception;
+
+/**
+ * Classe ... qui ...
+ */
+abstract class AbstractExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+{
+    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
+    {
+        $this->addWhere($queryBuilder, $resourceClass, $operationName);
+    }
+
+    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
+    {
+        $this->addWhere($queryBuilder, $resourceClass, $operationName);
+    }
+
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    {
+        throw new Exception('need override addWhere function', 500);
+    }
+}

+ 3 - 15
src/Doctrine/Access/CurrentAccessExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Access;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Service\ServiceIterator\CurrentAccessExtensionIterator;
 use Doctrine\ORM\QueryBuilder;
@@ -15,7 +13,7 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentAccessExtension : Filtre de sécurité par défaut pour une resource Access
  * @package App\Doctrine\Access
  */
-final class CurrentAccessExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentAccessExtension extends AbstractExtension
 {
     public function __construct(
         private Security $security,
@@ -23,17 +21,7 @@ final class CurrentAccessExtension implements QueryCollectionExtensionInterface,
     )
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (Access::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Access/CurrentUserPersonalizedListExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Access;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\PersonalizedList;
 use Doctrine\ORM\QueryBuilder;
 use Symfony\Component\Security\Core\Security;
@@ -14,22 +12,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentUserPersonalizedListExtension : Filtre de sécurité par défaut pour une resource PersonalizedList
  * @package App\Doctrine\Access
  */
-final class CurrentUserPersonalizedListExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentUserPersonalizedListExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (PersonalizedList::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Billing/CurrentResidenceAreaExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Billing;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Billing\ResidenceArea;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentResidenceAreaExtension : Filtre de sécurité par défaut pour une resource ResidenceArea
  * @package App\Doctrine\Core
  */
-final class CurrentResidenceAreaExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentResidenceAreaExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (ResidenceArea::class !== $resourceClass) {
             return;

+ 4 - 17
src/Doctrine/Booking/CurrentCoursesExtension.php

@@ -3,38 +3,25 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Booking;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Booking\Course;
 use Doctrine\ORM\QueryBuilder;
-use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\Security\Core\Security;
 
 /**
  * Class CurrentCoursesExtension : Filtre de sécurité par défaut pour une resource Course
  * @package App\Doctrine\Core
  */
-final class CurrentCoursesExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentCoursesExtension extends AbstractExtension
 {
-    public function __construct(private Security $security, private RequestStack $requestStack)
+    public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (Course::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Core/AllowedAddressPostalExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Core;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Core\AddressPostal;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class AllowedAddressPostalExtension : Filtre de sécurité par défaut pour une resource AddressPostal
  * @package App\Doctrine\Core
  */
-final class AllowedAddressPostalExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class AllowedAddressPostalExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (AddressPostal::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Core/CurrentNotificationUserExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Core;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Core\NotificationUser;
 use Doctrine\ORM\QueryBuilder;
@@ -15,25 +13,15 @@ use Symfony\Component\Security\Core\Security;
  * Class NotificationExtension : Filtre de sécurité par défaut pour une resource Notification
  * @package App\Doctrine\Core
  */
-final class CurrentNotificationUserExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentNotificationUserExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (NotificationUser::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Core/CurrentUserNotificationExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Core;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Core\Notification;
 use Doctrine\ORM\QueryBuilder;
@@ -15,25 +13,15 @@ use Symfony\Component\Security\Core\Security;
  * Class NotificationExtension : Filtre de sécurité par défaut pour une resource Notification
  * @package App\Doctrine\Core
  */
-final class CurrentUserNotificationExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentUserNotificationExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (Notification::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Education/CurrentCycleExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Education;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Education\Cycle;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentCycleExtension : Filtre de sécurité par défaut pour une resource Cycle
  * @package App\Doctrine\Core
  */
-final class CurrentCycleExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentCycleExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (Cycle::class !== $resourceClass) {
             return;

+ 3 - 16
src/Doctrine/Education/CurrentEducationNotationConfigExtension.php

@@ -3,11 +3,8 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Education;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
-use App\Entity\Education\Cycle;
 use App\Entity\Education\EducationNotationConfig;
 use Doctrine\ORM\QueryBuilder;
 use Symfony\Component\Security\Core\Security;
@@ -16,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentEducationNotationConfigExtension : Filtre de sécurité par défaut pour une resource EducationNotationConfig
  * @package App\Doctrine\Core
  */
-final class CurrentEducationNotationConfigExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentEducationNotationConfigExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (EducationNotationConfig::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Education/CurrentEducationTimingExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Education;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Education\EducationTiming;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentEducationTimingExtension : Filtre de sécurité par défaut pour une resource CurrentEducationTiming
  * @package App\Doctrine\Core
  */
-final class CurrentEducationTimingExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentEducationTimingExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (EducationTiming::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Network/CurrentNetworkOrganizationExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Network;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Network\NetworkOrganization;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentNetworkOrganizationExtension : Filtre de sécurité par défaut pour une resource NetworkOrganization
  * @package App\Doctrine\Core
  */
-final class CurrentNetworkOrganizationExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentNetworkOrganizationExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (NetworkOrganization::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Organization/CurrentOrganizationAddressPostalExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Organization;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Organization\OrganizationAddressPostal;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class OrganizationAddressPosteExtension : Filtre de sécurité par défaut pour une resource OrganizationAddressPostal
  * @package App\Doctrine\Core
  */
-final class CurrentOrganizationAddressPostalExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentOrganizationAddressPostalExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (OrganizationAddressPostal::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Organization/CurrentOrganizationArticleExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Organization;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Organization\OrganizationArticle;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentOrganizationArticleExtension : Filtre de sécurité par défaut pour une resource OrganizationArticle
  * @package App\Doctrine\Core
  */
-final class CurrentOrganizationArticleExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentOrganizationArticleExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (OrganizationArticle::class !== $resourceClass) {
             return;

+ 3 - 15
src/Doctrine/Organization/CurrentOrganizationExtension.php

@@ -3,9 +3,7 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Organization;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use App\Doctrine\AbstractExtension;
 use App\Entity\Access\Access;
 use App\Entity\Organization\Organization;
 use Doctrine\ORM\QueryBuilder;
@@ -15,22 +13,12 @@ use Symfony\Component\Security\Core\Security;
  * Class CurrentOrganizationExtension : Filtre de sécurité par défaut pour une resource Organization
  * @package App\Doctrine\Core
  */
-final class CurrentOrganizationExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
+final class CurrentOrganizationExtension extends AbstractExtension
 {
     public function __construct(private Security $security)
     { }
 
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
-    {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
-    }
-
-    private function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
     {
         if (Organization::class !== $resourceClass) {
             return;

+ 2 - 2
src/Entity/Booking/Course.php

@@ -5,7 +5,7 @@ namespace App\Entity\Booking;
 
 use ApiPlatform\Core\Annotation\ApiResource;
 use App\Annotation\OrganizationDefaultValue;
-use App\Annotation\YearConstraintAware;
+use App\Annotation\ActivityYearConstraintAware;
 use App\Entity\Organization\Organization;
 use App\Entity\Traits\ActivityYearTrait;
 use App\Repository\Booking\CourseRepository;
@@ -25,7 +25,7 @@ use Doctrine\ORM\Mapping as ORM;
     ]
 )]
 #[ORM\Entity(repositoryClass:CourseRepository::class)]
-#[YearConstraintAware(startYearFieldName: "startYear", endYearFieldName: "endYear")]
+#[ActivityYearConstraintAware(startYearFieldName: "startYear", endYearFieldName: "endYear")]
 #[OrganizationDefaultValue(fieldName: "organization")]
 
 #[ORM\Table(name: 'Booking')]

+ 5 - 2
src/Entity/Education/EducationNotationConfig.php

@@ -49,8 +49,11 @@ class EducationNotationConfig
     private ?string $description;
 
     #[ORM\Column(options: ['default' => 1])]
-    #[Assert\GreaterThanOrEqual(1, message: 'greaterThanOrEqual1')]
-    #[Assert\LessThanOrEqual(10, message: 'lessThanOrEqual10')]
+    #[Assert\Range(
+        notInRangeMessage: 'between_{{ min }}_and_{{ max }}',
+        min: 1,
+        max: 10
+    )]
     private int $coefficient = 1;
 
     #[ORM\OneToMany( mappedBy: 'educationNotationConfig', targetEntity: Access::class)]

+ 6 - 3
src/Entity/Organization/Parameters.php

@@ -54,15 +54,18 @@ class Parameters
     private bool $trackingValidation = false;
 
     #[ORM\Column(options: ['default' => 20])]
-    #[Assert\GreaterThanOrEqual(0, message: 'greaterThanOrEqual0')]
-    #[Assert\LessThanOrEqual(100, message: 'lessThanOrEqual100')]
+    #[Assert\Range(
+        notInRangeMessage: 'between_{{ min }}_and_{{ max }}',
+        min: 0,
+        max: 100
+    )]
     private int $average = 20;
 
     #[ORM\Column(options: ['default' => true])]
     private bool $editCriteriaNotationByAdminOnly = true;
 
     #[ORM\Column(length: 255, nullable: true)]
-    #[Assert\Regex('/^[a-zA-Z0-9]+$/i', message: 'smsSenderName_error')]
+    #[Assert\Regex('/^[a-z0-9]+$/i', message: 'smsSenderName_error')]
     private ?string $smsSenderName = null;
 
     #[ORM\Column(options: ['default' => false])]

+ 6 - 7
src/EventListener/DoctrineFilter/DoctrineFilterListener.php

@@ -3,8 +3,8 @@ declare(strict_types=1);
 
 namespace App\EventListener\DoctrineFilter;
 
+use App\Service\Constraint\ActivityYearConstraint;
 use App\Service\Constraint\DateTimeConstraint;
-use App\Service\Constraint\YearTimeConstraint;
 use Doctrine\ORM\EntityManagerInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpKernel\Event\RequestEvent;
@@ -18,7 +18,7 @@ class DoctrineFilterListener
     public function __construct(
         private EntityManagerInterface $entityManager,
         private DateTimeConstraint $dateTimeConstraint,
-        private YearTimeConstraint $yearTimeConstraint,
+        private ActivityYearConstraint $activityYearConstraint,
         private Security $security,
         private RequestStack $requestStack
     )
@@ -36,10 +36,9 @@ class DoctrineFilterListener
         $dateTimeFilter->setParameter('_time_constraint', $this->requestStack->getMainRequest()->get('_time_constraint', true));
         $dateTimeFilter->setDateTimeConstraint($this->dateTimeConstraint);
 
-
-        $yearTimeFilter = $this->entityManager->getFilters()->getFilter('year_time_filter');
-        $yearTimeFilter->setParameter('accessId', $this->security->getUser()?->getId() ?? null);
-        $yearTimeFilter->setParameter('_time_constraint', $this->requestStack->getMainRequest()->get('_time_constraint', true));
-        $yearTimeFilter->setYearTimeConstraint($this->yearTimeConstraint);
+        $activityYearFilter = $this->entityManager->getFilters()->getFilter('activity_year_filter');
+        $activityYearFilter->setParameter('accessId', $this->security->getUser()?->getId() ?? null);
+        $activityYearFilter->setParameter('_time_constraint', $this->requestStack->getMainRequest()->get('_time_constraint', true));
+        $activityYearFilter->setActivityYearConstraint($this->activityYearConstraint);
     }
 }

+ 1 - 1
src/Filter/DoctrineFilter/AbstractTimeFilterUtils.php → src/Filter/DoctrineFilter/AbstractTimeFilter.php

@@ -13,7 +13,7 @@ use Doctrine\ORM\Query\Filter\SQLFilter;
 /**
  * Classe AbstractTimeFilterUtils fournie des méthodes pour construire les requetes de contrainte de temps
  */
-abstract class AbstractTimeFilterUtils extends SQLFilter
+abstract class AbstractTimeFilter extends SQLFilter
 {
     /**
      * Fonction permettant de construire la requête SQL correspondante aux contraintes

+ 11 - 13
src/Filter/DoctrineFilter/YearTimeFilter.php → src/Filter/DoctrineFilter/ActivityYearFilter.php

@@ -3,19 +3,17 @@ declare(strict_types=1);
 
 namespace App\Filter\DoctrineFilter;
 
-use App\Annotation\DateTimeConstraintAware;
-use App\Annotation\YearConstraintAware;
-use App\Service\Constraint\DateTimeConstraint;
-use App\Service\Constraint\YearTimeConstraint;
+use App\Annotation\ActivityYearConstraintAware;
+use App\Service\Constraint\ActivityYearConstraint;
 use App\Service\Utils\StringsUtils;
 use Doctrine\ORM\Mapping\ClassMetadata;
 
 /**
  * Classe DateTimeFilter qui définie la requête SQL devant être ajoutée aux Entités possédant l'annotation DateTimeConstraintAware
  */
-final class YearTimeFilter extends AbstractTimeFilterUtils
+final class ActivityYearFilter extends AbstractTimeFilter
 {
-    private YearTimeConstraint $yearTimeConstraint;
+    private ActivityYearConstraint $activityYearConstraint;
 
     /**
      * Méthode surchargée de SQLFilter
@@ -32,7 +30,7 @@ final class YearTimeFilter extends AbstractTimeFilterUtils
         )
             return '';
 
-        $yearConstraintAware = $targetEntity->getReflectionClass()->getAttributes(YearConstraintAware::class)[0] ?? null;
+        $yearConstraintAware = $targetEntity->getReflectionClass()->getAttributes(ActivityYearConstraintAware::class)[0] ?? null;
         $startFieldName = $yearConstraintAware?->getArguments()['startYearFieldName'] ?? null;
         $endFieldName = $yearConstraintAware?->getArguments()['endYearFieldName'] ?? null;
         if ($startFieldName === '' || is_null($startFieldName) || $endFieldName === '' || is_null($endFieldName)) {
@@ -41,11 +39,11 @@ final class YearTimeFilter extends AbstractTimeFilterUtils
 
         $accessId = intval(StringsUtils::unquote($this->getParameter('accessId')));
 
-        $constraints = $this->yearTimeConstraint->invoke($accessId);
+        $constraints = $this->activityYearConstraint->invoke($accessId);
 
         $fields = [
-            DateTimeConstraint::START_KEY => $startFieldName,
-            DateTimeConstraint::END_KEY => $endFieldName
+            ActivityYearConstraint::START_KEY => $startFieldName,
+            ActivityYearConstraint::END_KEY => $endFieldName
         ];
 
         return $this->constructQuery($constraints, $targetTableAlias, $fields);
@@ -53,10 +51,10 @@ final class YearTimeFilter extends AbstractTimeFilterUtils
 
     /**
      * Permets d'assurer l'injection de dépendance du service YearTimeConstraint
-     * @param YearTimeConstraint $yearTimeConstraint
+     * @param ActivityYearConstraint $activityYearConstraint
      *
      */
-    public function setYearTimeConstraint(YearTimeConstraint $yearTimeConstraint){
-        $this->yearTimeConstraint = $yearTimeConstraint;
+    public function setActivityYearConstraint(ActivityYearConstraint $activityYearConstraint){
+        $this->activityYearConstraint = $activityYearConstraint;
     }
 }

+ 1 - 1
src/Filter/DoctrineFilter/DateTimeFilter.php

@@ -11,7 +11,7 @@ use Doctrine\ORM\Mapping\ClassMetadata;
 /**
  * Classe DateTimeFilter qui définie la requête SQL devant être ajoutée aux Entités possédant l'annotation DateTimeConstraintAware
  */
-final class DateTimeFilter extends AbstractTimeFilterUtils
+final class DateTimeFilter extends AbstractTimeFilter
 {
     private DateTimeConstraint $dateTimeConstraint;
 

+ 3 - 0
src/OpenApi/OpenApiFactory.php

@@ -7,6 +7,9 @@ use ApiPlatform\Core\OpenApi\Factory\OpenApiFactoryInterface;
 use ApiPlatform\Core\OpenApi\OpenApi;
 use ApiPlatform\Core\OpenApi\Model;
 
+/**
+ * Permet de retirer des URLs dans la doc Open API
+ */
 final class OpenApiFactory implements OpenApiFactoryInterface
 {
     const PATH_TO_EXCLUDE = [

+ 2 - 2
src/Repository/Booking/CourseRepository.php

@@ -23,7 +23,7 @@ class CourseRepository extends ServiceEntityRepository
      * @return array
      */
     public function getCoursesToFrom(Organization $organization, \DateTimeInterface $start, \DateTimeInterface $end): array{
-        $this->_em->getFilters()->disable('year_time_filter');
+        $this->_em->getFilters()->disable('activity_year_filter');
 
         $queryBuilder = $this->createQueryBuilder('course');
 
@@ -39,7 +39,7 @@ class CourseRepository extends ServiceEntityRepository
 
         $results = $queryBuilder->getQuery()->getResult();
 
-        $this->_em->getFilters()->enable('year_time_filter');
+        $this->_em->getFilters()->enable('activity_year_filter');
 
         return $results;
     }

+ 2 - 2
src/Service/Constraint/YearTimeConstraint.php → src/Service/Constraint/ActivityYearConstraint.php

@@ -8,10 +8,10 @@ use App\Service\Organization\Utils as organizationUtils;
 use Doctrine\ORM\EntityManagerInterface;
 
 /**
- * Classe YearTimeConstraint qui définie l'année de début (et de fin dans le cas d'une période custom)
+ * Classe ActivityYearConstraint qui définie l'année de début (et de fin dans le cas d'une période custom)
  * par rapport au contraintes temporelles choisies par un utilisateur.
  */
-class YearTimeConstraint extends AbstractTimeConstraintUtils
+class ActivityYearConstraint extends AbstractTimeConstraintUtils
 {
     public function __construct(
         private EntityManagerInterface $entityManager,

+ 4 - 5
src/Service/Core/ContactPointUtils.php

@@ -26,11 +26,10 @@ class ContactPointUtils
      */
     public function getPersonContactPointPrincipal(Access $access): ?ContactPoint{
         $contactPoint = $this->contactPointRepository->getByTypeAndPerson(ContactPointTypeEnum::PRINCIPAL()->getValue(), $access->getPerson());
-        if(count($contactPoint) !== 1) return null;
-
-        if ($contactPoint[0] instanceof ContactPoint) {
-            return $contactPoint[0];
+        if(count($contactPoint) === 0) return null;
+        if(count($contactPoint) !== 1){
+            throw new \Exception('more_than_one_result');
         }
-        throw new \InvalidArgumentException('Value must be a ContactPoint');
+        return $contactPoint[0];
     }
 }

+ 2 - 2
src/Service/Mobyt/MobytService.php

@@ -63,9 +63,9 @@ class MobytService extends ApiRequestService
      * @param string $login
      * @param string $password
      * @return bool
-     * @see MobytServiceTest::testIsCredentialsAreCorrect()
+     * @see MobytServiceTest::testHasCredentialsCorrect()
      */
-    public function isCredentialsAreCorrect(string $login, string $password): bool
+    public function hasCredentialsCorrect(string $login, string $password): bool
     {
         try{
             $this->connect($login, $password);

+ 1 - 1
src/Service/Organization/OnOrganizationChange.php → src/Service/OnChange/Organization/OnOrganizationChange.php

@@ -1,7 +1,7 @@
 <?php
 declare(strict_types=1);
 
-namespace App\Service\Organization;
+namespace App\Service\OnChange\Organization;
 
 use App\Entity\Organization\Organization;
 use App\Enum\Organization\LegalEnum;

+ 6 - 6
src/Service/Organization/OnParametersChange.php → src/Service/OnChange/Organization/OnParametersChange.php

@@ -2,7 +2,7 @@
 
 declare(strict_types=1);
 
-namespace App\Service\Organization;
+namespace App\Service\OnChange\Organization;
 
 use App\Entity\Booking\Course;
 use App\Entity\Education\EducationNotationConfig;
@@ -25,10 +25,10 @@ class OnParametersChange
     /**
      * Si le le type de grilles d'évaluation évolue, il faut "nettoyer" les curriculums/teachers associés au type précédent
      * @param Parameters $parameters
-     * @see OnParametersChangeTest::testOnAdvancedEducationNotationTypeByTeachers()
-     * @see OnParametersChangeTest::testOnAdvancedEducationNotationTypeByEducation()
+     * @see OnParametersChangeTest::testOnAdvancedEducationNotationTypeByTeachersChange()
+     * @see OnParametersChangeTest::testOnAdvancedEducationNotationTypeByEducationChange()
      */
-    public function onAdvancedEducationNotationType(Parameters $parameters): void {
+    public function onAdvancedEducationNotationTypeChange(Parameters $parameters): void {
         foreach ($parameters->getOrganization()->getEducationNotationConfigs() as $educationNotationConfig){
             /** @var EducationNotationConfig $educationNotationConfig */
             if($parameters->getAdvancedEducationNotationType() === AdvancedEducationNotationTypeEnum::BY_TEACHER()->getValue()){
@@ -49,9 +49,9 @@ class OnParametersChange
      * @param \DateTimeInterface $previousMusicalDate
      * @param \DateTimeInterface $newMusicalDate
      * @throws \Exception
-     * @see OnParametersChangeTest::testOnMusicalDate()
+     * @see OnParametersChangeTest::testOnMusicalDateChange()
      */
-    public function onMusicalDate(Organization $organization, \DateTimeInterface $previousMusicalDate): void{
+    public function onMusicalDateChange(Organization $organization, \DateTimeInterface $previousMusicalDate): void{
         $currentMusicalDate = $organization->getParameters()->getMusicalDate();
 
         if($previousMusicalDate > $currentMusicalDate){

+ 3 - 1
src/Validator/Organization/Parameters/MobytCredentialsValidator.php

@@ -26,7 +26,9 @@ class MobytCredentialsValidator extends ConstraintValidator
         if(empty($userNameSms) || empty($passwordSms))
             return;
 
-        if(!$this->mobytService->isCredentialsAreCorrect($userNameSms, $passwordSms)){
+        try{
+            $this->mobytService->hasCredentialsCorrect($userNameSms, $passwordSms);
+        }catch (\Exception $exception){
             $this->context->buildViolation($constraint->message)
                 ->atPath('passwordSMS')
                 ->addViolation();

+ 6 - 6
tests/Service/Mobyt/MobytServiceTest.php

@@ -65,9 +65,9 @@ class MobytServiceTest extends TestCase
     }
 
     /**
-     * @see MobytService::isCredentialsAreCorrect()
+     * @see MobytService::hasCredentialsCorrect()
      */
-    public function testIsCredentialsAreCorrect(): void {
+    public function testHasCredentialsCorrect(): void {
 
         // Mock the response that will be returned by the connection request
         $connectResponse = $this->getMockBuilder(ResponseInterface::class)
@@ -82,13 +82,13 @@ class MobytServiceTest extends TestCase
                 $connectResponse
             );
 
-        $this->assertTrue($this->mobytService->isCredentialsAreCorrect('user', 'pwd'));
+        $this->assertTrue($this->mobytService->hasCredentialsCorrect('user', 'pwd'));
     }
 
     /**
-     * @see MobytService::isCredentialsAreCorrect()
+     * @see MobytService::hasCredentialsCorrect()
      */
-    public function testIsCredentialsUnCorrect(): void {
+    public function testHasCredentialsUnCorrect(): void {
 
         // Mock the response that will be returned by the connection request
         $connectResponse = $this->getMockBuilder(ResponseInterface::class)
@@ -103,6 +103,6 @@ class MobytServiceTest extends TestCase
                 $connectResponse
             );
 
-        $this->assertFalse($this->mobytService->isCredentialsAreCorrect('user', 'pwd'));
+        $this->assertFalse($this->mobytService->hasCredentialsCorrect('user', 'pwd'));
     }
 }

+ 9 - 9
tests/Service/Organization/OnParametersChangeTest.php

@@ -26,9 +26,9 @@ class OnParametersChangeTest extends TestCase
     }
 
     /**
-     * @see OnParametersChange::onAdvancedEducationNotationType()
+     * @see OnParametersChange::onAdvancedEducationNotationTypeChange()
      */
-    public function testOnAdvancedEducationNotationTypeByTeachers(){
+    public function testOnAdvancedEducationNotationTypeByTeachersChange(){
         $educationNotationConfig = new EducationNotationConfig();
         $educationCurriculum = new EducationCurriculum();
         $educationNotationConfig->addEducationCurriculum($educationCurriculum);
@@ -40,14 +40,14 @@ class OnParametersChangeTest extends TestCase
         $this->parameters->setOrganization($organization);
 
         $this->assertCount(1, $educationNotationConfig->getEducationCurriculums());
-        $this->onParametersChange->onAdvancedEducationNotationType($this->parameters);
+        $this->onParametersChange->onAdvancedEducationNotationTypeChange($this->parameters);
         $this->assertNull($educationNotationConfig->getEducationCurriculums()->first()->getEducationNotationConfig());
     }
 
     /**
-     * @see OnParametersChange::onAdvancedEducationNotationType()
+     * @see OnParametersChange::onAdvancedEducationNotationTypeChange()
      */
-    public function testOnAdvancedEducationNotationTypeByEducation(){
+    public function testOnAdvancedEducationNotationTypeByEducationChange(){
         $educationNotationConfig = new EducationNotationConfig();
         $teacher = new Access();
         $educationNotationConfig->addTeacher($teacher);
@@ -59,16 +59,16 @@ class OnParametersChangeTest extends TestCase
         $this->parameters->setOrganization($organization);
 
         $this->assertCount(1, $educationNotationConfig->getTeachers());
-        $this->onParametersChange->onAdvancedEducationNotationType($this->parameters);
+        $this->onParametersChange->onAdvancedEducationNotationTypeChange($this->parameters);
         $this->assertNull($educationNotationConfig->getTeachers()->first()->getEducationNotationConfig());
     }
 
     /**
      * Un cours qui débute le 2/09/2022, si l'année musical passe du 05/09 au 01/09 alors le cours passe de l'année 2021/2022 à 2022/2023
      * @throws \Exception
-     * @see OnParametersChange::onMusicalDate()
+     * @see OnParametersChange::onMusicalDateChange()
      */
-    public function testOnMusicalDate(){
+    public function testOnMusicalDateChange(){
         $organization = new Organization();
         $this->parameters->setMusicalDate(new \DateTime('2022-09-01'));
         $organization->setParameters($this->parameters);
@@ -84,7 +84,7 @@ class OnParametersChangeTest extends TestCase
             ->willReturn([$course])
         ;
 
-        $this->onParametersChange->onMusicalDate($organization, new \DateTime('2022-09-05'));
+        $this->onParametersChange->onMusicalDateChange($organization, new \DateTime('2022-09-05'));
 
         $this->assertEquals(2022, $course->getStartYear());
         $this->assertEquals(2023, $course->getEndYear());