* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter\Profile\CommandHandler; use PrestaShop\PrestaShop\Core\Domain\Profile\Command\AddProfileCommand; use PrestaShop\PrestaShop\Core\Domain\Profile\CommandHandler\AddProfileHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\Profile\Exception\ProfileException; use PrestaShop\PrestaShop\Core\Domain\Profile\ValueObject\ProfileId; use Profile; /** * Adds new employee profile using legacy object model */ final class AddProfileHandler implements AddProfileHandlerInterface { /** * {@inheritdoc} */ public function handle(AddProfileCommand $command) { $profile = new Profile(); $profile->name = $command->getLocalizedNames(); if (false === $profile->validateFieldsLang(false)) { throw new ProfileException('Cannot create Profile because it contains invalid data'); } if (false === $profile->add()) { throw new ProfileException('Failed to create Profile'); } return new ProfileId((int) $profile->id); } }