wip: downloads entire season
This commit is contained in:
@@ -6,10 +6,10 @@ class UserPreferences
|
||||
{
|
||||
|
||||
public function __construct(
|
||||
public readonly string $resolution,
|
||||
public readonly string $codec,
|
||||
public readonly string $language,
|
||||
public readonly string $provider,
|
||||
public readonly string $quality,
|
||||
public readonly ?string $resolution,
|
||||
public readonly ?string $codec,
|
||||
public readonly ?string $language,
|
||||
public readonly ?string $provider,
|
||||
public readonly ?string $quality,
|
||||
) {}
|
||||
}
|
||||
|
||||
@@ -2,18 +2,46 @@
|
||||
|
||||
namespace App\User\Dto;
|
||||
|
||||
use App\User\Framework\Entity\PreferenceOption;
|
||||
use App\User\Framework\Entity\User;
|
||||
use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
class UserPreferencesFactory
|
||||
{
|
||||
public static function createFromUser(User $user): UserPreferences
|
||||
/** @param User $user */
|
||||
public static function createFromUser(UserInterface $user): UserPreferences
|
||||
{
|
||||
return new UserPreferences(
|
||||
resolution: $user->getUserPreference('resolution')->getPreferenceValue(),
|
||||
codec: $user->getUserPreference('codec')->getPreferenceValue(),
|
||||
language: $user->getUserPreference('language')->getPreferenceValue(),
|
||||
provider: $user->getUserPreference('provider')->getPreferenceValue(),
|
||||
quality: $user->getUserPreference('quality')->getPreferenceValue(),
|
||||
resolution: self::getNestedValue($user, 'resolution'),
|
||||
codec: self::getNestedValue($user, 'codec'),
|
||||
language: self::getValue($user, 'language'),
|
||||
provider: self::getValue($user, 'provider'),
|
||||
quality: self::getValue($user, 'quality'),
|
||||
);
|
||||
}
|
||||
|
||||
/** @param User $user */
|
||||
private static function getValue(UserInterface $user, string $preferenceId)
|
||||
{
|
||||
$value = $user->getUserPreference($preferenceId)->getPreferenceValue();
|
||||
if ($value === "") {
|
||||
return null;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/** @param User $user */
|
||||
private static function getNestedValue(UserInterface $user, string $preferenceId): ?string
|
||||
{
|
||||
$preference = $user->getUserPreference($preferenceId);
|
||||
if (null === $preference) {
|
||||
return null;
|
||||
}
|
||||
return $preference->getPreference()
|
||||
->getPreferenceOptions()
|
||||
->filter(fn (PreferenceOption $option) => (string) $option->getId() === $preference->getPreferenceValue())
|
||||
->first()
|
||||
->getValue()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,9 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
public function getUserPreference(string $preferenceName): ?UserPreference
|
||||
{
|
||||
foreach ($this->userPreferences as $userPreference) {
|
||||
if ($userPreference->getPreference()->getName() === $preferenceName) {
|
||||
if ($userPreference->getPreference()->getName() === $preferenceName
|
||||
|| $userPreference->getPreference()->getId() === $preferenceName
|
||||
) {
|
||||
return $userPreference;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user