src/Service/TipSettingsService.php line 65

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\TipSettings;
  4. use App\Entity\User;
  5. use App\Form\TipSettingsType;
  6. use App\Service\User\UserService;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\Form\FormInterface;
  9. use Symfony\Component\Serializer\SerializerInterface;
  10. class TipSettingsService extends BaseEntityService
  11. {
  12.     /**
  13.      * @var UserService
  14.      */
  15.     private $userService;
  16.     public function __construct(EntityManagerInterface $emSerializerInterface $serializer,
  17.                                 UserService            $userServiceServiceRetriever $serviceRetriever)
  18.     {
  19.         parent::__construct($em$serializer$serviceRetriever);
  20.         $this->initialize(TipSettings::class);
  21.         $this->userService $userService;
  22.     }
  23.     public function createOrGet(User $user): TipSettings
  24.     {
  25.         $settings $this->getFirst(['user' => $user]);
  26.         if (!$settings) {
  27.             $settings = new TipSettings();
  28.             $settings->setUser($user);
  29.             $this->saveDefault($settings);
  30.         }
  31.         return $settings;
  32.     }
  33.     public function getCurrentReviewerTipSettings(): TipSettings
  34.     {
  35.         $reviewer $this->userService->getCurrentReviewer();
  36.         $settings $this->createOrGet($reviewer);
  37.         return $settings;
  38.     }
  39.     public function getCurrentReviewerTipSettingsStr(): string
  40.     {
  41.         $tipSettings $this->getCurrentReviewerTipSettings();
  42.         $excludeFields = ['id''user'];
  43.         $tipSettingsJsonStr $this->serializeDefault(
  44.             $tipSettingsnull$excludeFields);
  45.         return $tipSettingsJsonStr;
  46.     }
  47.     public function getCurrentReviewerSettingsForm(): FormInterface
  48.     {
  49.         $tipSettings $this-> getCurrentReviewerTipSettings();
  50.         $formFactory $this->serviceRetriever->getFormFactory();
  51.         $tipSettingsForm $formFactory->create(TipSettingsType::class, $tipSettings);
  52.         return $tipSettingsForm;
  53.     }
  54.     public function getCurrentUserTipSettings(): TipSettings
  55.     {
  56.         $user $this->userService->getLoggedInUser();
  57.         $settings $this->createOrGet($user);
  58.         return $settings;
  59.     }
  60.     public function getCurrentUserTipSettingsStr(): string
  61.     {
  62.         $tipSettings $this->getCurrentUserTipSettings();
  63.         $excludeFields = ['id''user'];
  64.         $tipSettingsJsonStr $this->serializeDefault(
  65.             $tipSettingsnull$excludeFields);
  66.         return $tipSettingsJsonStr;
  67.     }
  68.     public function getCurrentUserTipSettingsForm(): FormInterface
  69.     {
  70.         $tipSettings $this->getCurrentUserTipSettings();
  71.         $formFactory $this->serviceRetriever->getFormFactory();
  72.         $tipSettingsForm $formFactory->create(TipSettingsType::class, $tipSettings);
  73.         return $tipSettingsForm;
  74.     }
  75. }