Olivier Massot vor 2 Monaten
Ursprung
Commit
d96faa02b4

+ 1 - 0
src/ApiResources/HelloAsso/AuthUrl.php

@@ -43,6 +43,7 @@ class AuthUrl
     public function setId(int $id): self
     {
         $this->id = $id;
+
         return $this;
     }
 

+ 1 - 0
src/ApiResources/HelloAsso/ConnectionRequest.php

@@ -73,6 +73,7 @@ class ConnectionRequest implements ApiResourcesInterface
     public function setChallengeVerifier(string $challengeVerifier): self
     {
         $this->challengeVerifier = $challengeVerifier;
+
         return $this;
     }
 }

+ 10 - 10
src/ApiResources/HelloAsso/EventForm.php

@@ -9,8 +9,6 @@ use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Metadata\Get;
 use ApiPlatform\Metadata\GetCollection;
 use ApiPlatform\Metadata\Link;
-use App\State\Provider\HelloAsso\AuthUrlProvider;
-use App\State\Provider\HelloAsso\HelloAssoProfileProvider;
 use App\State\Provider\HelloAsso\EventFormProvider;
 
 /**
@@ -30,34 +28,32 @@ use App\State\Provider\HelloAsso\EventFormProvider;
                 'eventId' => new Link(
                     fromProperty: 'eventId',
                     identifiers: ['eventId']
-                )
+                ),
             ]
-        )
+        ),
     ],
     provider: EventFormProvider::class,
 )]
 class EventForm
 {
     /**
-     * Slug du formulaire
+     * Slug du formulaire.
      */
     #[ApiProperty(identifier: true)]
     private ?string $slug = null;
 
     /**
-     * Id de l'Event auquel le formulaire est associé
-     * @var int | null
+     * Id de l'Event auquel le formulaire est associé.
      */
     private ?int $eventId = null;
 
     /**
-     * Titre du formulaire
-     * @var string|null
+     * Titre du formulaire.
      */
     private ?string $title = null;
 
     /**
-     * Url du formulaire
+     * Url du formulaire.
      */
     private ?string $widgetUrl = null;
 
@@ -69,6 +65,7 @@ class EventForm
     public function setSlug(?string $slug): self
     {
         $this->slug = $slug;
+
         return $this;
     }
 
@@ -80,6 +77,7 @@ class EventForm
     public function setEventId(?int $eventId): self
     {
         $this->eventId = $eventId;
+
         return $this;
     }
 
@@ -91,6 +89,7 @@ class EventForm
     public function setTitle(?string $title): self
     {
         $this->title = $title;
+
         return $this;
     }
 
@@ -102,6 +101,7 @@ class EventForm
     public function setWidgetUrl(?string $widgetUrl): self
     {
         $this->widgetUrl = $widgetUrl;
+
         return $this;
     }
 }

+ 7 - 5
src/ApiResources/HelloAsso/HelloAssoProfile.php

@@ -7,7 +7,6 @@ namespace App\ApiResources\HelloAsso;
 use ApiPlatform\Metadata\ApiProperty;
 use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Metadata\Get;
-use App\State\Provider\HelloAsso\AuthUrlProvider;
 use App\State\Provider\HelloAsso\HelloAssoProfileProvider;
 
 /**
@@ -33,19 +32,18 @@ class HelloAssoProfile
 
     /**
      * Is there a HelloAsso profile linked to this organization ?
-     * @var bool
      */
     private bool $existing = false;
 
     /**
      * Token HelloAsso pour l'autorisation OAuth2.
      */
-    private string | null $token = null;
+    private ?string $token = null;
 
     /**
-     * Slug de l'organization HelloAsso
+     * Slug de l'organization HelloAsso.
      */
-    private string | null $organizationSlug = null;
+    private ?string $organizationSlug = null;
 
     public function getId(): int
     {
@@ -55,6 +53,7 @@ class HelloAssoProfile
     public function setId(int $id): self
     {
         $this->id = $id;
+
         return $this;
     }
 
@@ -66,6 +65,7 @@ class HelloAssoProfile
     public function setExisting(bool $existing): self
     {
         $this->existing = $existing;
+
         return $this;
     }
 
@@ -77,6 +77,7 @@ class HelloAssoProfile
     public function setToken(?string $token): self
     {
         $this->token = $token;
+
         return $this;
     }
 
@@ -88,6 +89,7 @@ class HelloAssoProfile
     public function setOrganizationSlug(?string $organizationSlug): self
     {
         $this->organizationSlug = $organizationSlug;
+
         return $this;
     }
 }

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

@@ -4,7 +4,6 @@ declare(strict_types=1);
 
 namespace App\ApiResources\Organization;
 
-use App\Enum\Core\FileTypeEnum;
 use App\Enum\Person\GenderEnum;
 use libphonenumber\PhoneNumber;
 use Symfony\Component\Validator\Constraints as Assert;

+ 2 - 0
src/Entity/Booking/Event.php

@@ -523,6 +523,7 @@ class Event extends AbstractBooking
     public function setHelloAssoSlug(?string $helloAssoSlug): self
     {
         $this->helloAssoSlug = $helloAssoSlug;
+
         return $this;
     }
 
@@ -534,6 +535,7 @@ class Event extends AbstractBooking
     public function setHelloAssoPublicUrl(?string $helloAssoPublicUrl): self
     {
         $this->helloAssoPublicUrl = $helloAssoPublicUrl;
+
         return $this;
     }
 }

+ 9 - 9
src/Entity/HelloAsso/HelloAsso.php

@@ -5,7 +5,6 @@ declare(strict_types=1);
 namespace App\Entity\HelloAsso;
 
 use App\Entity\Organization\Organization;
-use App\Entity\Traits\CreatedOnAndByTrait;
 use App\Repository\HelloAsso\HelloAssoRepository;
 use Doctrine\ORM\Mapping as ORM;
 
@@ -29,34 +28,33 @@ class HelloAsso
 
     /**
      * La valeur utilisée pour générer le challenge PCKE; à conserver en base le temps de l'authentification HelloAsso.
-     * @var string|null
      */
     #[ORM\Column(type: 'text', nullable: true)]
     private ?string $challengeVerifier = null;
 
     /**
-     * Le token d'authentification HelloAsso, valable 30min.'
-     * @var string|null
+     * Le token d'authentification HelloAsso, valable 30min.'.
      */
     #[ORM\Column(type: 'text', nullable: true)]
     private ?string $token = null;
 
     /**
-     * Date à laquelle le token a été généré
+     * Date à laquelle le token a été généré.
+     *
      * @var \DateTimeInterface|null
      */
     #[ORM\Column(type: 'datetime', nullable: true)]
     private $tokenCreatedAt;
 
     /**
-     * Un autre jeton, valable 30jours, permettant de regénérer le token d'authentification HelloAsso.'
-     * @var string|null
+     * Un autre jeton, valable 30jours, permettant de regénérer le token d'authentification HelloAsso.'.
      */
     #[ORM\Column(type: 'text', nullable: true)]
     private ?string $refreshToken = null;
 
     /**
-     * Date à laquelle le refreshToken a été généré
+     * Date à laquelle le refreshToken a été généré.
+     *
      * @var \DateTimeInterface|null
      */
     #[ORM\Column(type: 'datetime', nullable: true)]
@@ -64,7 +62,6 @@ class HelloAsso
 
     /**
      * Le slug de l'organisation sur HelloAsso.
-     * @var string|null
      */
     #[ORM\Column(type: 'string', length: 255, nullable: true)]
     private ?string $organizationSlug = null;
@@ -101,6 +98,7 @@ class HelloAsso
     public function setChallengeVerifier(?string $challengeVerifier): self
     {
         $this->challengeVerifier = $challengeVerifier;
+
         return $this;
     }
 
@@ -124,6 +122,7 @@ class HelloAsso
     public function setTokenCreatedAt(?\DateTimeInterface $tokenCreatedAt): self
     {
         $this->tokenCreatedAt = $tokenCreatedAt;
+
         return $this;
     }
 
@@ -147,6 +146,7 @@ class HelloAsso
     public function setRefreshTokenCreatedAt(?\DateTimeInterface $refreshTokenCreatedAt): self
     {
         $this->refreshTokenCreatedAt = $refreshTokenCreatedAt;
+
         return $this;
     }
 

+ 0 - 1
src/Repository/HelloAsso/HelloAssoRepository.php

@@ -4,7 +4,6 @@ declare(strict_types=1);
 
 namespace App\Repository\HelloAsso;
 
-use App\Entity\Education\Cycle;
 use App\Entity\HelloAsso\HelloAsso;
 use App\Service\Utils\DatesUtils;
 use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;

+ 0 - 1
src/Service/Cron/Job/CleanTempFiles.php

@@ -5,7 +5,6 @@ declare(strict_types=1);
 namespace App\Service\Cron\Job;
 
 use App\Entity\Core\File;
-use App\Enum\Core\FileHostEnum;
 use App\Enum\Core\FileStatusEnum;
 use App\Repository\Core\FileRepository;
 use App\Service\Cron\BaseCronJob;

+ 5 - 5
src/Service/Cron/Job/CleanWorkToDo.php

@@ -6,8 +6,6 @@ namespace App\Service\Cron\Job;
 
 use App\Entity\Booking\Work;
 use App\Entity\Booking\WorkByUser;
-use App\Entity\Core\File;
-use App\Enum\Core\FileHostEnum;
 use App\Enum\Core\FileStatusEnum;
 use App\Service\Cron\BaseCronJob;
 use App\Service\Utils\DatesUtils;
@@ -78,12 +76,14 @@ class CleanWorkToDo extends BaseCronJob
 
         if ($total === 0) {
             $this->logger->info('No works found to delete');
+
             return;
         }
 
         if ($preview) {
             $this->ui->print('> Printing the first and last 10 :');
             $this->previewWorks($works);
+
             return;
         }
 
@@ -101,19 +101,19 @@ class CleanWorkToDo extends BaseCronJob
 
                 // Set DELETION_REQUESTED status for all associated files
                 $this->connection->executeStatement(
-                    "UPDATE File SET status = ?, work_id = null WHERE work_id = ?",
+                    'UPDATE File SET status = ?, work_id = null WHERE work_id = ?',
                     [FileStatusEnum::DELETION_REQUESTED->value, $workId]
                 );
 
                 // Delete WorkByUser records
                 $this->connection->executeStatement(
-                    "DELETE FROM WorkByUser WHERE work_id = ?",
+                    'DELETE FROM WorkByUser WHERE work_id = ?',
                     [$workId]
                 );
 
                 // Delete the work itself
                 $this->connection->executeStatement(
-                    "DELETE FROM Work WHERE id = ?",
+                    'DELETE FROM Work WHERE id = ?',
                     [$workId]
                 );
 

+ 6 - 11
src/Service/Cron/Job/RefreshHelloassoTokens.php

@@ -4,18 +4,10 @@ declare(strict_types=1);
 
 namespace App\Service\Cron\Job;
 
-use App\Entity\Core\File;
 use App\Entity\HelloAsso\HelloAsso;
-use App\Enum\Core\FileHostEnum;
-use App\Enum\Core\FileStatusEnum;
-use App\Repository\Core\FileRepository;
 use App\Service\Cron\BaseCronJob;
-use App\Service\File\Storage\LocalStorage;
 use App\Service\HelloAsso\HelloAssoService;
-use App\Service\Utils\DatesUtils;
-use Doctrine\DBAL\Connection;
 use Doctrine\ORM\EntityManagerInterface;
-use Doctrine\ORM\QueryBuilder;
 use JetBrains\PhpStorm\Pure;
 
 /**
@@ -57,10 +49,11 @@ class RefreshHelloassoTokens extends BaseCronJob
 
         if (count($helloAssoEntities) === 0) {
             $this->ui->print('No tokens to refresh');
+
             return;
         }
 
-        $this->ui->print("Tokens to refresh :");
+        $this->ui->print('Tokens to refresh :');
 
         foreach ($helloAssoEntities as $helloAssoEntity) {
             $this->ui->print(
@@ -81,10 +74,11 @@ class RefreshHelloassoTokens extends BaseCronJob
 
         if ($amount === 0) {
             $this->logger->info('No tokens to refresh');
+
             return;
         }
 
-        $this->logger->info($amount . ' tokens to refresh');
+        $this->logger->info($amount.' tokens to refresh');
 
         $i = 0;
 
@@ -95,12 +89,13 @@ class RefreshHelloassoTokens extends BaseCronJob
 
             $this->helloAssoService->refreshTokens($helloAssoEntity);
 
-            $i++;
+            ++$i;
 
             if ($i >= self::CALLS_LIMIT) {
                 if ($amount > self::CALLS_LIMIT) {
                     $this->logger->warning('API calls limit reached, aborting');
                 }
+
                 return;
             }
 

+ 19 - 27
src/Service/HelloAsso/HelloAssoService.php

@@ -5,9 +5,8 @@ declare(strict_types=1);
 namespace App\Service\HelloAsso;
 
 use App\ApiResources\HelloAsso\AuthUrl;
-use App\ApiResources\HelloAsso\HelloAssoProfile;
 use App\ApiResources\HelloAsso\EventForm;
-use App\Entity\Booking\Event;
+use App\ApiResources\HelloAsso\HelloAssoProfile;
 use App\Entity\HelloAsso\HelloAsso;
 use App\Entity\Organization\Organization;
 use App\Repository\Booking\EventRepository;
@@ -16,13 +15,9 @@ use App\Service\Rest\ApiRequestService;
 use App\Service\Security\OAuthPkceGenerator;
 use App\Service\Utils\DatesUtils;
 use App\Service\Utils\UrlBuilder;
-use Doctrine\Common\Collections\Collection;
 use Doctrine\ORM\EntityManagerInterface;
-use Psr\Log\LoggerInterface;
 use Symfony\Component\HttpKernel\Exception\HttpException;
-use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
 use Symfony\Contracts\HttpClient\HttpClientInterface;
-use Symfony\Contracts\HttpClient\ResponseInterface;
 
 /**
  * Service de connexion à HelloAsso.
@@ -67,7 +62,7 @@ class HelloAssoService extends ApiRequestService
      *
      * @see doc/helloasso.md#se-connecter-avec-helloasso
      *
-     * @param int    $organizationId    the ID of the organization to connect
+     * @param int $organizationId the ID of the organization to connect
      */
     public function getAuthUrl(int $organizationId): AuthUrl
     {
@@ -153,9 +148,6 @@ class HelloAssoService extends ApiRequestService
 
     /**
      * Génère le profil HelloAsso pour une organisation.
-     *
-     * @param int $organizationId
-     * @return HelloAssoProfile
      */
     public function makeHelloAssoProfile(int $organizationId): HelloAssoProfile
     {
@@ -202,9 +194,11 @@ class HelloAssoService extends ApiRequestService
 
     /**
      * @param array<string> $routeParts
+     *
      * @return array<string, mixed>
      */
-    public function getResource(HelloAsso $helloAssoEntity, array $routeParts): array {
+    public function getResource(HelloAsso $helloAssoEntity, array $routeParts): array
+    {
         if (!$helloAssoEntity->getOrganizationSlug() || !$helloAssoEntity->getToken()) {
             throw new \RuntimeException('HelloAsso entity incomplete');
         }
@@ -219,19 +213,15 @@ class HelloAssoService extends ApiRequestService
         $response = $this->get(
             $url,
             [],
-            ['headers' =>
-                [
-                    'accept' => 'application/json',
-                    'authorization' => 'Bearer '.$helloAssoEntity->getToken(),
-                ]
+            ['headers' => [
+                'accept' => 'application/json',
+                'authorization' => 'Bearer '.$helloAssoEntity->getToken(),
+            ],
             ]
         );
 
         if ($response->getStatusCode() !== 200) {
-            throw new HttpException(
-                500,
-                'Failed to fetch resource: ['.$response->getStatusCode().'] '.$response->getContent(false)
-            );
+            throw new HttpException(500, 'Failed to fetch resource: ['.$response->getStatusCode().'] '.$response->getContent(false));
         }
 
         return json_decode($response->getContent(), true, 512, JSON_THROW_ON_ERROR);
@@ -302,15 +292,17 @@ class HelloAssoService extends ApiRequestService
         if ($shallHaveToken && (!$helloAssoEntity->getOrganizationSlug() || !$helloAssoEntity->getToken())) {
             throw new \RuntimeException('HelloAsso entity incomplete');
         }
+
         return $helloAssoEntity;
     }
 
     /**
      * Construit un objet EventForm à partir des données retournées par l'api HelloAsso.
+     *
      * @param array<string, mixed> $formData
-     * @return EventForm
      */
-    protected function makeHelloAssoEventForm(array $formData): EventForm {
+    protected function makeHelloAssoEventForm(array $formData): EventForm
+    {
         $form = new EventForm();
         $form->setSlug($formData['formSlug']);
         $form->setTitle($formData['title']);
@@ -320,9 +312,7 @@ class HelloAssoService extends ApiRequestService
     }
 
     /**
-     * Génère l'URL de rappel pour les callbacks suite à l'authentification HelloAsso
-     *
-     * @return string
+     * Génère l'URL de rappel pour les callbacks suite à l'authentification HelloAsso.
      */
     protected function getCallbackUrl(): string
     {
@@ -412,7 +402,8 @@ class HelloAssoService extends ApiRequestService
         }
     }
 
-    public function refreshTokenIfNeeded(HelloAsso $helloAssoEntity): HelloAsso {
+    public function refreshTokenIfNeeded(HelloAsso $helloAssoEntity): HelloAsso
+    {
         if (!$helloAssoEntity->getRefreshToken() || !$helloAssoEntity->getRefreshTokenCreatedAt()) {
             throw new \RuntimeException('HelloAsso entity incomplete');
         }
@@ -427,7 +418,8 @@ class HelloAssoService extends ApiRequestService
         return $this->refreshTokens($helloAssoEntity);
     }
 
-    public function refreshTokens(HelloAsso $helloAssoEntity): HelloAsso {
+    public function refreshTokens(HelloAsso $helloAssoEntity): HelloAsso
+    {
         if (!$helloAssoEntity->getRefreshToken() || !$helloAssoEntity->getRefreshTokenCreatedAt()) {
             throw new \RuntimeException('HelloAsso entity incomplete');
         }

+ 1 - 0
src/Service/Security/OAuthPkceGenerator.php

@@ -8,6 +8,7 @@ class OAuthPkceGenerator
 {
     /**
      * @return array<string, string>
+     *
      * @throws \Random\RandomException
      */
     public static function generatePkce(): array

+ 1 - 2
src/Service/Twig/PhoneNumberExtension.php

@@ -8,7 +8,6 @@ use libphonenumber\PhoneNumber;
 use libphonenumber\PhoneNumberFormat;
 use libphonenumber\PhoneNumberUtil;
 use Twig\Extension\AbstractExtension;
-use Twig\TwigFunction;
 use Twig\TwigFilter;
 
 /**
@@ -17,7 +16,7 @@ use Twig\TwigFilter;
 class PhoneNumberExtension extends AbstractExtension
 {
     public function __construct(
-        private readonly PhoneNumberUtil $phoneNumberUtil
+        private readonly PhoneNumberUtil $phoneNumberUtil,
     ) {
     }
 

+ 4 - 4
src/State/Processor/HelloAsso/ConnectionRequestProcessor.php

@@ -22,9 +22,9 @@ class ConnectionRequestProcessor implements ProcessorInterface
 {
     public function __construct(
         private readonly HelloAssoService $helloAssoService,
-        private Security                  $security,
-        private MercureHub                $mercureHub,
-        private LoggerInterface           $logger,
+        private Security $security,
+        private MercureHub $mercureHub,
+        private LoggerInterface $logger,
     ) {
     }
 
@@ -63,7 +63,7 @@ class ConnectionRequestProcessor implements ProcessorInterface
         try {
             $this->mercureHub->publishUpdate($access->getId(), $helloAssoProfile);
         } catch (\Exception $e) {
-            $this->logger->error('Error while sending mercure update : ' . $e->getMessage());
+            $this->logger->error('Error while sending mercure update : '.$e->getMessage());
         }
 
         return $connectionRequest;

+ 4 - 4
src/State/Processor/HelloAsso/UnlinkRequestProcessor.php

@@ -20,14 +20,14 @@ class UnlinkRequestProcessor implements ProcessorInterface
 {
     public function __construct(
         private readonly HelloAssoService $helloAssoService,
-        private Security                  $security,
+        private Security $security,
     ) {
     }
 
     /**
      * @param UnlinkRequest $data
-     * @param mixed[]           $uriVariables
-     * @param mixed[]           $context
+     * @param mixed[]       $uriVariables
+     * @param mixed[]       $context
      *
      * @throws \Exception
      */
@@ -46,7 +46,7 @@ class UnlinkRequestProcessor implements ProcessorInterface
         $access = $this->security->getUser();
 
         if ($unlinkRequest->getOrganizationId() !== $access->getOrganization()->getId()) {
-            throw new \RuntimeException('Forbidden: ' . $unlinkRequest->getOrganizationId() . ' !== ' . $access->getOrganization()->getId());
+            throw new \RuntimeException('Forbidden: '.$unlinkRequest->getOrganizationId().' !== '.$access->getOrganization()->getId());
         }
 
         $this->helloAssoService->unlinkHelloAssoAccount($unlinkRequest->getOrganizationId());

+ 1 - 1
src/State/Provider/HelloAsso/AuthUrlProvider.php

@@ -20,7 +20,7 @@ final class AuthUrlProvider implements ProviderInterface
 {
     public function __construct(
         private HelloAssoService $helloAssoService,
-        private Security         $security,
+        private Security $security,
     ) {
     }
 

+ 4 - 5
src/State/Provider/HelloAsso/EventFormProvider.php

@@ -8,14 +8,12 @@ use ApiPlatform\Metadata\Get;
 use ApiPlatform\Metadata\GetCollection;
 use ApiPlatform\Metadata\Operation;
 use ApiPlatform\State\ProviderInterface;
-use App\ApiResources\HelloAsso\AuthUrl;
-use App\ApiResources\HelloAsso\HelloAssoProfile;
 use App\ApiResources\HelloAsso\EventForm;
+use App\ApiResources\HelloAsso\HelloAssoProfile;
 use App\Entity\Access\Access;
 use App\Service\HelloAsso\HelloAssoService;
 use Doctrine\Common\Collections\ArrayCollection;
 use Symfony\Bundle\SecurityBundle\Security;
-use Symfony\Component\HttpFoundation\Response;
 
 /**
  * Provider pour la ressource HelloAssoProfile.
@@ -24,7 +22,7 @@ final class EventFormProvider implements ProviderInterface
 {
     public function __construct(
         private HelloAssoService $helloAssoService,
-        private Security         $security,
+        private Security $security,
     ) {
     }
 
@@ -34,7 +32,7 @@ final class EventFormProvider implements ProviderInterface
      *
      * @throws \Exception
      */
-    public function provide(Operation $operation, array $uriVariables = [], array $context = []): ArrayCollection | EventForm
+    public function provide(Operation $operation, array $uriVariables = [], array $context = []): ArrayCollection|EventForm
     {
         if ($operation instanceof Get && isset($uriVariables['eventId'])) {
             // This is a public endpoint
@@ -47,6 +45,7 @@ final class EventFormProvider implements ProviderInterface
 
         if ($operation instanceof GetCollection) {
             $forms = $this->helloAssoService->getHelloAssoEventForms($organizationId);
+
             return new ArrayCollection($forms);
         }
 

+ 1 - 2
src/State/Provider/HelloAsso/HelloAssoProfileProvider.php

@@ -7,7 +7,6 @@ namespace App\State\Provider\HelloAsso;
 use ApiPlatform\Metadata\GetCollection;
 use ApiPlatform\Metadata\Operation;
 use ApiPlatform\State\ProviderInterface;
-use App\ApiResources\HelloAsso\AuthUrl;
 use App\ApiResources\HelloAsso\HelloAssoProfile;
 use App\Entity\Access\Access;
 use App\Service\HelloAsso\HelloAssoService;
@@ -21,7 +20,7 @@ final class HelloAssoProfileProvider implements ProviderInterface
 {
     public function __construct(
         private HelloAssoService $helloAssoService,
-        private Security         $security,
+        private Security $security,
     ) {
     }
 

+ 0 - 1
tests/Unit/Service/Cron/Job/CleanTempFilesTest.php

@@ -3,7 +3,6 @@
 namespace App\Tests\Unit\Service\Cron\Job;
 
 use App\Entity\Core\File;
-use App\Enum\Core\FileHostEnum;
 use App\Enum\Core\FileStatusEnum;
 use App\Repository\Core\FileRepository;
 use App\Service\Cron\Job\CleanTempFiles;

+ 5 - 6
tests/Unit/Service/Cron/Job/CleanWorkToDoTest.php

@@ -2,17 +2,16 @@
 
 namespace App\Tests\Unit\Service\Cron\Job;
 
+use App\Entity\Booking\Course;
 use App\Entity\Booking\Work;
 use App\Entity\Booking\WorkByUser;
-use App\Entity\Booking\Course;
 use App\Entity\Core\File;
-use App\Enum\Core\FileStatusEnum;
 use App\Service\Cron\Job\CleanWorkToDo;
 use App\Service\Cron\UI\CronUIInterface;
 use App\Service\File\Storage\LocalStorage;
 use App\Service\Utils\DatesUtils;
-use Doctrine\DBAL\Connection;
 use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\DBAL\Connection;
 use Doctrine\ORM\EntityManagerInterface;
 use Doctrine\ORM\Query;
 use Doctrine\ORM\QueryBuilder;
@@ -392,7 +391,7 @@ class CleanWorkToDoTest extends TestCase
         $works = [];
 
         // Create 25 mock works to test the preview logic
-        for ($i = 1; $i <= 25; $i++) {
+        for ($i = 1; $i <= 25; ++$i) {
             $course = $this->getMockBuilder(Course::class)->getMock();
             $course->method('getName')->willReturn("Course $i");
 
@@ -409,7 +408,7 @@ class CleanWorkToDoTest extends TestCase
         $expectedCalls = [];
 
         // First 10
-        for ($i = 1; $i <= 10; $i++) {
+        for ($i = 1; $i <= 10; ++$i) {
             $expectedCalls[] = ["  * Work ID $i - Course: Course $i - Files: 0 - Users: 0"];
         }
 
@@ -417,7 +416,7 @@ class CleanWorkToDoTest extends TestCase
         $expectedCalls[] = ['  (...)'];
 
         // Last 10
-        for ($i = 16; $i <= 25; $i++) {
+        for ($i = 16; $i <= 25; ++$i) {
             $expectedCalls[] = ["  * Work ID $i - Course: Course $i - Files: 0 - Users: 0"];
         }
 

+ 5 - 6
tests/Unit/Service/Cron/Job/FilesGarbageCollectorTest.php

@@ -11,8 +11,8 @@ use App\Service\Cron\UI\CronUIInterface;
 use App\Service\File\Storage\LocalStorage;
 use Doctrine\DBAL\Connection;
 use Doctrine\ORM\Query;
-use Doctrine\ORM\QueryBuilder;
 use Doctrine\ORM\Query\Expr;
+use Doctrine\ORM\QueryBuilder;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
@@ -89,7 +89,7 @@ class FilesGarbageCollectorTest extends TestCase
             ->method('exists')
             ->willReturnMap([
                 [$file1, true],
-                [$file2, false]
+                [$file2, false],
             ]);
 
         $this->ui->expects(self::exactly(4))
@@ -104,7 +104,6 @@ class FilesGarbageCollectorTest extends TestCase
         $filesGarbageCollector->preview();
     }
 
-
     /**
      * @see FilesGarbageCollector::execute()
      */
@@ -213,7 +212,7 @@ class FilesGarbageCollectorTest extends TestCase
             ->method('exists')
             ->willReturnMap([
                 [$file1, true],
-                [$file2, false]
+                [$file2, false],
             ]);
 
         $this->storage->expects(self::once())
@@ -285,7 +284,7 @@ class FilesGarbageCollectorTest extends TestCase
             ->method('exists')
             ->willReturnMap([
                 [$file1, true],
-                [$file2, true]
+                [$file2, true],
             ]);
 
         $this->storage->expects(self::exactly(2))
@@ -394,7 +393,7 @@ class FilesGarbageCollectorTest extends TestCase
             ->method('eq')
             ->willReturnMap([
                 ['f.host', ':host', $hostComparison],
-                ['f.status', ':status', $statusComparison]
+                ['f.status', ':status', $statusComparison],
             ]);
 
         $queryBuilder->expects(self::exactly(2))

+ 4 - 4
tests/Unit/Service/Cron/Job/RefreshHelloassoTokensTest.php

@@ -181,13 +181,13 @@ class RefreshHelloassoTokensTest extends TestCase
         $helloAssoEntities = [];
 
         // Create 15 entities to test the API calls limit (limit is 10)
-        for ($i = 1; $i <= 15; $i++) {
+        for ($i = 1; $i <= 15; ++$i) {
             $organization = $this->getMockBuilder(Organization::class)->getMock();
             $organization->method('getId')->willReturn($i);
 
             $helloAsso = $this->getMockBuilder(HelloAsso::class)->getMock();
             $helloAsso->method('getOrganization')->willReturn($organization);
-            $helloAsso->method('getRefreshTokenCreatedAt')->willReturn(new \DateTime("2023-01-" . str_pad($i, 2, '0', STR_PAD_LEFT) . " 10:00:00"));
+            $helloAsso->method('getRefreshTokenCreatedAt')->willReturn(new \DateTime('2023-01-'.str_pad($i, 2, '0', STR_PAD_LEFT).' 10:00:00'));
 
             $helloAssoEntities[] = $helloAsso;
         }
@@ -220,13 +220,13 @@ class RefreshHelloassoTokensTest extends TestCase
         $helloAssoEntities = [];
 
         // Create exactly 10 entities (the limit)
-        for ($i = 1; $i <= 10; $i++) {
+        for ($i = 1; $i <= 10; ++$i) {
             $organization = $this->getMockBuilder(Organization::class)->getMock();
             $organization->method('getId')->willReturn($i);
 
             $helloAsso = $this->getMockBuilder(HelloAsso::class)->getMock();
             $helloAsso->method('getOrganization')->willReturn($organization);
-            $helloAsso->method('getRefreshTokenCreatedAt')->willReturn(new \DateTime("2023-01-" . str_pad($i, 2, '0', STR_PAD_LEFT) . " 10:00:00"));
+            $helloAsso->method('getRefreshTokenCreatedAt')->willReturn(new \DateTime('2023-01-'.str_pad($i, 2, '0', STR_PAD_LEFT).' 10:00:00'));
 
             $helloAssoEntities[] = $helloAsso;
         }

+ 11 - 13
tests/Unit/Service/HelloAsso/HelloAssoServiceTest.php

@@ -11,9 +11,7 @@ use App\Entity\Organization\Organization;
 use App\Repository\Booking\EventRepository;
 use App\Repository\Organization\OrganizationRepository;
 use App\Service\HelloAsso\HelloAssoService;
-use App\Service\Security\OAuthPkceGenerator;
 use App\Service\Utils\DatesUtils;
-use App\Service\Utils\UrlBuilder;
 use Doctrine\ORM\EntityManagerInterface;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
@@ -743,7 +741,7 @@ class HelloAssoServiceTest extends TestCase
             'data' => [
                 ['formSlug' => 'form1', 'title' => 'Event 1'],
                 ['formSlug' => 'form2', 'title' => 'Event 2'],
-            ]
+            ],
         ];
 
         $service->expects(self::once())
@@ -807,7 +805,7 @@ class HelloAssoServiceTest extends TestCase
         $formData = [
             'formSlug' => 'test-form-slug',
             'title' => 'Test Event',
-            'widgetFullUrl' => 'https://widget.url'
+            'widgetFullUrl' => 'https://widget.url',
         ];
 
         $service->expects(self::once())
@@ -1066,7 +1064,7 @@ class HelloAssoServiceTest extends TestCase
         $formData = [
             'formSlug' => 'test-form-slug',
             'title' => 'Test Event Title',
-            'widgetFullUrl' => 'https://widget.full.url'
+            'widgetFullUrl' => 'https://widget.full.url',
         ];
 
         $result = $service->makeHelloAssoEventForm($formData);
@@ -1102,7 +1100,7 @@ class HelloAssoServiceTest extends TestCase
             'refresh_token' => 'test-refresh-token',
             'token_type' => 'Bearer',
             'expires_in' => 3600,
-            'organization_slug' => null
+            'organization_slug' => null,
         ];
 
         $this->httpClient->expects(self::once())
@@ -1113,7 +1111,7 @@ class HelloAssoServiceTest extends TestCase
                     'grant_type' => 'client_credentials',
                     'client_id' => 'test-client-id',
                     'client_secret' => 'test-client-secret',
-                ]
+                ],
             ])
             ->willReturn($response);
 
@@ -1146,7 +1144,7 @@ class HelloAssoServiceTest extends TestCase
             'refresh_token' => 'test-refresh-token',
             'token_type' => 'Bearer',
             'expires_in' => 3600,
-            'organization_slug' => null
+            'organization_slug' => null,
         ];
 
         $service->expects(self::once())
@@ -1163,8 +1161,8 @@ class HelloAssoServiceTest extends TestCase
                     'client_secret' => 'test-client-secret',
                     'code' => 'test-auth-code',
                     'redirect_uri' => 'https://test-public.com/helloasso/callback',
-                    'code_verifier' => 'test-verifier'
-                ]
+                    'code_verifier' => 'test-verifier',
+                ],
             ])
             ->willReturn($response);
 
@@ -1383,7 +1381,7 @@ class HelloAssoServiceTest extends TestCase
         $tokensData = [
             'access_token' => 'new-access-token',
             'refresh_token' => 'new-refresh-token',
-            'expires_in' => 3600
+            'expires_in' => 3600,
         ];
 
         $helloAssoEntity->expects(self::atLeastOnce())
@@ -1400,8 +1398,8 @@ class HelloAssoServiceTest extends TestCase
                 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded'],
                 'body' => [
                     'grant_type' => 'refresh_token',
-                    'refresh_token' => 'current-refresh-token'
-                ]
+                    'refresh_token' => 'current-refresh-token',
+                ],
             ])
             ->willReturn($response);