* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Form\IdentifiableObject\DataProvider; use PrestaShop\PrestaShop\Core\CommandBus\CommandBusInterface; use PrestaShop\PrestaShop\Core\Domain\Profile\Query\GetProfileForEditing; use PrestaShop\PrestaShop\Core\Domain\Profile\QueryResult\EditableProfile; /** * Provides data for Profile form */ final class ProfileFormDataProvider implements FormDataProviderInterface { /** * @var string */ private $defaultAvatarUrl; /** * @var CommandBusInterface */ private $queryBus; /** * @param CommandBusInterface $queryBus * @param string $defaultAvatarUrl */ public function __construct( CommandBusInterface $queryBus, string $defaultAvatarUrl ) { $this->queryBus = $queryBus; $this->defaultAvatarUrl = $defaultAvatarUrl; } /** * {@inheritdoc} */ public function getData($profileId) { /** @var EditableProfile $editableProfile */ $editableProfile = $this->queryBus->handle(new GetProfileForEditing($profileId)); return [ 'name' => $editableProfile->getLocalizedNames(), 'avatar_url' => $editableProfile->getAvatarUrl(), ]; } /** * {@inheritdoc} */ public function getDefaultData() { return [ 'avatar_url' => $this->defaultAvatarUrl, ]; } }