Delete FormFactory

[MAILPOET-3662]
This commit is contained in:
Jan Lysý
2021-09-21 11:48:59 +02:00
committed by Veljko V
parent 8ae5219afa
commit 2af076ab83
4 changed files with 0 additions and 142 deletions

View File

@@ -9,7 +9,6 @@ use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Entities\FormEntity; use MailPoet\Entities\FormEntity;
use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SegmentEntity;
use MailPoet\Form\Block; use MailPoet\Form\Block;
use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository; use MailPoet\Form\FormsRepository;
use MailPoet\Form\Renderer as FormRenderer; use MailPoet\Form\Renderer as FormRenderer;
use MailPoet\Form\Templates\TemplateRepository; use MailPoet\Form\Templates\TemplateRepository;
@@ -103,9 +102,6 @@ class FormEditor {
/** @var WPFunctions */ /** @var WPFunctions */
private $wp; private $wp;
/** @var FormFactory */
private $formsFactory;
/** @var Localizer */ /** @var Localizer */
private $localizer; private $localizer;
@@ -204,7 +200,6 @@ class FormEditor {
FormRenderer $formRenderer, FormRenderer $formRenderer,
Block\Date $dateBlock, Block\Date $dateBlock,
WPFunctions $wp, WPFunctions $wp,
FormFactory $formsFactory,
Localizer $localizer, Localizer $localizer,
UserFlagsController $userFlags, UserFlagsController $userFlags,
WPPostListLoader $wpPostListLoader, WPPostListLoader $wpPostListLoader,
@@ -218,7 +213,6 @@ class FormEditor {
$this->formRenderer = $formRenderer; $this->formRenderer = $formRenderer;
$this->dateBlock = $dateBlock; $this->dateBlock = $dateBlock;
$this->wp = $wp; $this->wp = $wp;
$this->formsFactory = $formsFactory;
$this->localizer = $localizer; $this->localizer = $localizer;
$this->templatesRepository = $templateRepository; $this->templatesRepository = $templateRepository;
$this->userFlags = $userFlags; $this->userFlags = $userFlags;
@@ -228,7 +222,6 @@ class FormEditor {
} }
public function render() { public function render() {
exit();
if (!isset($_GET['id']) && !isset($_GET['action']) && !isset($_GET['template_id'])) { if (!isset($_GET['id']) && !isset($_GET['action']) && !isset($_GET['template_id'])) {
$this->renderTemplateSelection(); $this->renderTemplateSelection();
return; return;

View File

@@ -204,7 +204,6 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\Form\Block\Submit::class); $container->autowire(\MailPoet\Form\Block\Submit::class);
$container->autowire(\MailPoet\Form\Block\Text::class); $container->autowire(\MailPoet\Form\Block\Text::class);
$container->autowire(\MailPoet\Form\Block\Textarea::class); $container->autowire(\MailPoet\Form\Block\Textarea::class);
$container->autowire(\MailPoet\Form\FormFactory::class)->setPublic(true);
$container->autowire(\MailPoet\Form\FormHtmlSanitizer::class)->setPublic(true); $container->autowire(\MailPoet\Form\FormHtmlSanitizer::class)->setPublic(true);
$container->autowire(\MailPoet\Form\FormMessageController::class)->setPublic(true); $container->autowire(\MailPoet\Form\FormMessageController::class)->setPublic(true);
$container->autowire(\MailPoet\Form\FormSaveController::class)->setPublic(true); $container->autowire(\MailPoet\Form\FormSaveController::class)->setPublic(true);

View File

@@ -1,53 +0,0 @@
<?php
namespace MailPoet\Form;
use MailPoet\Entities\FormEntity;
use MailPoet\Form\Templates\TemplateRepository;
use MailPoet\Settings\SettingsController;
class FormFactory {
/** @var FormsRepository */
private $formRepository;
/** @var TemplateRepository */
private $formTemplateRepository;
/** @var SettingsController */
private $settings;
public function __construct(
FormsRepository $formRepository,
TemplateRepository $formTemplateRepository,
SettingsController $settings
) {
$this->formRepository = $formRepository;
$this->formTemplateRepository = $formTemplateRepository;
$this->settings = $settings;
}
public function createFormFromTemplate(string $templateId, array $settings = []): FormEntity {
if (!isset($settings['success_message'])) {
$settings['success_message'] = $this->getDefaultSuccessMessage();
}
$formTemplate = $this->formTemplateRepository->getFormTemplate($templateId);
$formEntity = $formTemplate->toFormEntity();
$formSettings = $formEntity->getSettings() ?? [];
$formEntity->setSettings(array_merge($formSettings, $settings));
$this->formRepository->persist($formEntity);
$this->formRepository->flush();
return $formEntity;
}
public function createEmptyForm(): FormEntity {
return $this->createFormFromTemplate(TemplateRepository::INITIAL_FORM_TEMPLATE);
}
private function getDefaultSuccessMessage() {
if ($this->settings->get('signup_confirmation.enabled')) {
return __('Check your inbox or spam folder to confirm your subscription.', 'mailpoet');
}
return __('Youve been successfully subscribed to our newsletter!', 'mailpoet');
}
}

View File

@@ -1,81 +0,0 @@
<?php
namespace MailPoet\Form;
use MailPoet\Entities\FormEntity;
use MailPoet\Form\Templates\TemplateRepository;
use MailPoet\Settings\SettingsController;
class FormFactoryTest extends \MailPoetTest {
/** @var FormFactory */
private $formFactory;
public function _before() {
parent::_before();
$this->formFactory = $this->diContainer->get(FormFactory::class);
}
public function testItCreatesAndPersistEmptyForm() {
$formEntity = $this->formFactory->createEmptyForm();
expect($formEntity)->isInstanceOf(FormEntity::class);
$this->entityManager->refresh($formEntity);
assert($formEntity instanceof FormEntity);
expect($formEntity->getName())->equals('');
expect($formEntity->getBody())->notEmpty();
expect($formEntity->getSettings())->notEmpty();
expect($formEntity->getStyles())->string();
}
public function testItCreatesAndPersistFormFromTemplateId() {
$formEntity = $this->formFactory->createFormFromTemplate(TemplateRepository::INITIAL_FORM_TEMPLATE);
expect($formEntity)->isInstanceOf(FormEntity::class);
$this->entityManager->refresh($formEntity);
assert($formEntity instanceof FormEntity);
expect($formEntity->getName())->equals('');
expect($formEntity->getBody())->notEmpty();
expect($formEntity->getSettings())->notEmpty();
expect($formEntity->getStyles())->string();
}
public function testItSetsDefaultMessage() {
$settings = $this->diContainer->get(SettingsController::class);
$settings->set('signup_confirmation.enabled', true);
$formEntity = $this->formFactory->createFormFromTemplate(TemplateRepository::INITIAL_FORM_TEMPLATE);
$formSettings = $formEntity->getSettings() ?? [];
expect($formSettings['success_message'])->equals('Check your inbox or spam folder to confirm your subscription.');
$settings->set('signup_confirmation.enabled', false);
$formEntity = $this->formFactory->createFormFromTemplate(TemplateRepository::INITIAL_FORM_TEMPLATE);
$formSettings = $formEntity->getSettings() ?? [];
expect($formSettings['success_message'])->equals('Youve been successfully subscribed to our newsletter!');
$formEntity = $this->formFactory->createFormFromTemplate(
TemplateRepository::INITIAL_FORM_TEMPLATE,
['success_message' => 'My custom']
);
$formSettings = $formEntity->getSettings() ?? [];
expect($formSettings['success_message'])->equals('My custom');
}
public function testItCanOverrideTemplateSettings() {
$settings = [
'success_message' => 'Hello Buddy!',
'segments' => [1, 2, 3],
];
$formEntity = $this->formFactory->createFormFromTemplate(TemplateRepository::INITIAL_FORM_TEMPLATE, $settings);
assert($formEntity instanceof FormEntity);
$formSettings = $formEntity->getSettings() ?? [];
expect($formSettings['success_message'])->equals('Hello Buddy!');
expect($formSettings['segments'])->equals([1, 2, 3]);
}
public function _after() {
parent::_after();
$this->cleanup();
}
private function cleanup() {
$this->truncateEntity(FormEntity::class);
}
}