diff --git a/migrations/Version20250519193350.php b/migrations/Version20250519193350.php new file mode 100644 index 0000000..71ede5e --- /dev/null +++ b/migrations/Version20250519193350.php @@ -0,0 +1,35 @@ +addSql(<<<'SQL' + ALTER TABLE preference ADD type VARCHAR(255) DEFAULT NULL + SQL); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql(<<<'SQL' + ALTER TABLE preference DROP type + SQL); + } +} diff --git a/src/Command/SeedDatabaseCommand.php b/src/Command/SeedDatabaseCommand.php index 863c974..eb16e7e 100644 --- a/src/Command/SeedDatabaseCommand.php +++ b/src/Command/SeedDatabaseCommand.php @@ -53,6 +53,7 @@ class SeedDatabaseCommand extends Command ->setName($preference['name']) ->setDescription($preference['description']) ->setEnabled($preference['enabled']) + ->setType($preference['type']) ); } @@ -66,25 +67,29 @@ class SeedDatabaseCommand extends Command 'id' => 'codec', 'name' => 'Codec', 'description' => null, - 'enabled' => true + 'enabled' => true, + 'type' => 'media', ], [ 'id' => 'resolution', 'name' => 'Resolution', 'description' => null, - 'enabled' => true + 'enabled' => true, + 'type' => 'media', ], [ 'id' => 'language', 'name' => 'Language', 'description' => null, - 'enabled' => true + 'enabled' => true, + 'type' => 'media', ], [ 'id' => 'provider', 'name' => 'Provider', 'description' => null, - 'enabled' => true + 'enabled' => true, + 'type' => 'media', ] ]; } diff --git a/src/User/Framework/Controller/Web/PreferencesController.php b/src/User/Framework/Controller/Web/PreferencesController.php index 04cf6a2..2aca250 100644 --- a/src/User/Framework/Controller/Web/PreferencesController.php +++ b/src/User/Framework/Controller/Web/PreferencesController.php @@ -26,19 +26,18 @@ class PreferencesController extends AbstractController public function __construct( private readonly PreferencesRepository $preferencesRepository, private readonly SaveUserMediaPreferencesHandler $saveUserMediaPreferencesHandler, - private readonly Security $security, private readonly HubInterface $hub, ) {} - #[Route('/media/preferences', 'app_media_preferences', methods: ['GET'])] + #[Route('/user/preferences', 'app_user_preferences', methods: ['GET'])] public function mediaPreferences(): Response { $enabledPreferences = $this->preferencesRepository->findEnabled(); - if ($this->security->getUser()->getUserPreferences()->count() !== count($enabledPreferences)) { - $this->setUserPreferences($this->security->getUser(), $enabledPreferences); + if ($this->getUser()->getUserPreferences()->count() !== count($enabledPreferences)) { + $this->setUserPreferences($this->getUser(), $enabledPreferences); } - $userPreferences = $this->security->getUser()->getUserPreferences()->toArray(); + $userPreferences = $this->getUser()->getUserPreferences()->toArray(); $userPreferences = Map::from($userPreferences) ->rekey(fn($preference) => $preference->getPreference()->getId()); @@ -56,7 +55,7 @@ class PreferencesController extends AbstractController ); } - #[Route('/media/preferences', 'app_save_media_preferences', methods: ['POST'])] + #[Route('/user/preferences/media', 'app_save_media_preferences', methods: ['POST'])] public function saveMediaPreferences( Request $request, SaveUserMediaPreferencesInput $input, diff --git a/src/User/Framework/Entity/Preference.php b/src/User/Framework/Entity/Preference.php index 8c6790b..77c2be0 100644 --- a/src/User/Framework/Entity/Preference.php +++ b/src/User/Framework/Entity/Preference.php @@ -14,6 +14,9 @@ class Preference #[ORM\Column] private ?string $id = null; + #[ORM\Column(length: 255, nullable: true)] + private ?string $type = null; + #[ORM\Column(length: 255, nullable: true)] private ?string $name = null; @@ -57,6 +60,17 @@ class Preference return $this; } + public function getType(): ?string + { + return $this->type; + } + + public function setType(string $type): static + { + $this->type = $type; + return $this; + } + public function getDescription(): ?string { return $this->description;