Przeglądaj źródła

do not throw a 500 on missing registration status

Olivier Massot 1 rok temu
rodzic
commit
df7af72571

+ 11 - 5
src/State/Provider/OnlineRegistration/RegistrationStatusProvider.php

@@ -9,6 +9,7 @@ use App\ApiResources\OnlineRegistration\RegistrationStatus;
 use App\Entity\Access\Access;
 use App\Enum\OnlineRegistration\RegistrationStatusEnum;
 use App\Service\ApiLegacy\ApiLegacyRequestService;
+use JsonException;
 use Symfony\Bundle\SecurityBundle\Security;
 
 class RegistrationStatusProvider implements ProviderInterface
@@ -20,8 +21,11 @@ class RegistrationStatusProvider implements ProviderInterface
     }
 
     /**
+     * @param Operation $operation
      * @param mixed[] $uriVariables
      * @param mixed[] $context
+     * @return RegistrationStatus|null
+     * @throws JsonException
      */
     public function provide(Operation $operation, array $uriVariables = [], array $context = []): ?RegistrationStatus
     {
@@ -38,10 +42,12 @@ class RegistrationStatusProvider implements ProviderInterface
         // --- L'appel au service remplacera l'appel à l'API v1 à l'avenir --
         // $registrationStatusValue = $this->registrationStatusService->getStatus($currentAccess);
 
-        $response = $this->apiLegacyRequestService->getJsonContent('/api/online_registration/registration_status');
-        if (!isset($response['status'])) {
-            throw new \RuntimeException('An error occured', 500);
-        }
+        $response = $this->apiLegacyRequestService->getJsonContent(
+            '/api/online_registration/registration_status',
+            [],
+            [],
+        false
+        );
 
         $statusMap = [
             'your_application_is_awaiting_processing' => RegistrationStatusEnum::NEGOTIABLE,
@@ -51,7 +57,7 @@ class RegistrationStatusProvider implements ProviderInterface
             null => null,
         ];
 
-        $status = $statusMap[$response['status']];
+        $status = isset($response['status']) ? $statusMap[$response['status']] : null;
 
         $registrationStatus = new RegistrationStatus();
         $registrationStatus->setAccessId($currentAccess->getId());