WIP: working move/tv show download
This commit is contained in:
@@ -8,6 +8,17 @@ use Symfony\Component\Security\Core\User\UserInterface;
|
||||
|
||||
class UserPreferencesFactory
|
||||
{
|
||||
public static function createFromArray(array $data): UserPreferences
|
||||
{
|
||||
return new UserPreferences(
|
||||
resolution: static::getArrayValue($data, 'resolution'),
|
||||
codec: static::getArrayValue($data, 'codec'),
|
||||
language: static::getArrayValue($data, 'language'),
|
||||
provider: static::getArrayValue($data, 'provider'),
|
||||
quality: static::getArrayValue($data, 'quality'),
|
||||
);
|
||||
}
|
||||
|
||||
/** @param User $user */
|
||||
public static function createFromUser(UserInterface $user): UserPreferences
|
||||
{
|
||||
@@ -30,4 +41,21 @@ class UserPreferencesFactory
|
||||
$value = explode(',', $value);
|
||||
return $value;
|
||||
}
|
||||
|
||||
private static function getArrayValue(array $data, string $key): array|null
|
||||
{
|
||||
if (!array_key_exists($key, $data)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ("" === $data[$key]) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (true === is_string($data[$key])) {
|
||||
return [$data[$key]];
|
||||
}
|
||||
|
||||
return $data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user