fix: refactors getting user's media preferences

This commit is contained in:
2025-05-19 16:16:54 -05:00
parent bd4ce76177
commit 3c965aa1ec
3 changed files with 26 additions and 41 deletions

View File

@@ -204,7 +204,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
return $this;
}
public function getUserPreferenceValues()
public function getUserPreferenceValues(string $type = 'all'): array
{
return Map::from($this->userPreferences)
->rekey(fn(UserPreference $userPreference) => $userPreference->getPreference()->getId())
@@ -213,7 +213,6 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
return $userPreference->getPreferenceValue();
}
foreach ($userPreference->getPreference()->getPreferenceOptions() as $preferenceOption) {
// dd((int) $userPreference->getPreferenceValue(), $preferenceOption->getId(), $preferenceOption->getValue());
if ($preferenceOption->getId() === (int) $userPreference->getPreferenceValue()) {
return $preferenceOption->getValue();
}
@@ -273,6 +272,15 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
return $this->downloads;
}
public function getMediaPreferences()
{
return Map::from($this->userPreferences)
->rekey(fn(UserPreference $userPreference) => $userPreference->getPreference()->getId())
->filter(fn(UserPreference $userPreference) => $userPreference->getPreference()->getType() === 'media')
->toArray()
;
}
/**
* @return Collection<int, Download>
*/