34 lines
983 B
PHP
34 lines
983 B
PHP
<?php
|
|
|
|
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
|
|
{
|
|
/** @param User $user */
|
|
public static function createFromUser(UserInterface $user): UserPreferences
|
|
{
|
|
return new UserPreferences(
|
|
resolution: self::getValue($user, 'resolution'),
|
|
codec: self::getValue($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;
|
|
}
|
|
$value = explode(',', $value);
|
|
return $value;
|
|
}
|
|
}
|