src/Service/ReviewerSettingsService.php line 54

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\ReviewerSettings;
  4. use App\Entity\User;
  5. use App\Service\User\UserService;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\Form\FormInterface;
  8. use Symfony\Component\Serializer\SerializerInterface;
  9. class ReviewerSettingsService extends BaseEntityService
  10. {
  11.     /**
  12.      * @var UserService
  13.      */
  14.     private $userService;
  15.     public function __construct(EntityManagerInterface $emUserService $userService,
  16.                                 ServiceRetriever $serviceRetrieverSerializerInterface $serializer null)
  17.     {
  18.         parent::__construct($em$serializer$serviceRetriever);
  19.         $this->initialize(ReviewerSettings::class);
  20.         $this->userService $userService;
  21.     }
  22.     public function getCurrentReviewerSettings(): ReviewerSettings
  23.     {
  24.         $reviewer $this->userService->getCurrentReviewer();
  25.         $reviewerSettings $this->createOrGet($reviewer);
  26.         return $reviewerSettings;
  27.     }
  28.     public function createOrGet(User $user): ReviewerSettings
  29.     {
  30.         $settings $this->getFirst(['user' => $user]);
  31.         if (!$settings) {
  32.             $settings = new ReviewerSettings();
  33.             $settings->setUser($user);
  34.             $this->saveDefault($settings);
  35.         }
  36.         return $settings;
  37.     }
  38.     public function getCurrentReviewerSettingsJsonStr(): string
  39.     {
  40.         $reviewerSettings $this->getCurrentReviewerSettings();
  41.         $excludeFields = ['id''user''candidateRecommendations'"candidateDeclineComments"];
  42.         $reviewerSettingsJsonStr $this->serializeDefault($reviewerSettingsnull$excludeFields);
  43.         return $reviewerSettingsJsonStr;
  44.     }
  45.     public function getCurrentReviewerSettingsForm(): FormInterface
  46.     {
  47.         $formFactory $this->serviceRetriever->getFormFactory();
  48.         $reviewerSettings $this->getCurrentReviewerSettings();
  49.         $form $formFactory->create(\App\Form\ReviewerSettingsType::class, $reviewerSettings);
  50.         return $form;
  51.     }
  52. }