Remove action create from endpoint
[MAILPOET-3662]
This commit is contained in:
@ -13,11 +13,11 @@ use MailPoet\Config\AccessControl;
|
|||||||
use MailPoet\Entities\FormEntity;
|
use MailPoet\Entities\FormEntity;
|
||||||
use MailPoet\Form\ApiDataSanitizer;
|
use MailPoet\Form\ApiDataSanitizer;
|
||||||
use MailPoet\Form\DisplayFormInWPContent;
|
use MailPoet\Form\DisplayFormInWPContent;
|
||||||
use MailPoet\Form\FormFactory;
|
|
||||||
use MailPoet\Form\FormSaveController;
|
use MailPoet\Form\FormSaveController;
|
||||||
use MailPoet\Form\FormsRepository;
|
use MailPoet\Form\FormsRepository;
|
||||||
use MailPoet\Form\Listing\FormListingRepository;
|
use MailPoet\Form\Listing\FormListingRepository;
|
||||||
use MailPoet\Form\PreviewPage;
|
use MailPoet\Form\PreviewPage;
|
||||||
|
use MailPoet\Form\Templates\TemplateRepository;
|
||||||
use MailPoet\Listing;
|
use MailPoet\Listing;
|
||||||
use MailPoet\Settings\UserFlagsController;
|
use MailPoet\Settings\UserFlagsController;
|
||||||
use MailPoet\UnexpectedValueException;
|
use MailPoet\UnexpectedValueException;
|
||||||
@ -35,9 +35,6 @@ class Forms extends APIEndpoint {
|
|||||||
/** @var UserFlagsController */
|
/** @var UserFlagsController */
|
||||||
private $userFlags;
|
private $userFlags;
|
||||||
|
|
||||||
/** @var FormFactory */
|
|
||||||
private $formFactory;
|
|
||||||
|
|
||||||
/** @var FormsResponseBuilder */
|
/** @var FormsResponseBuilder */
|
||||||
private $formsResponseBuilder;
|
private $formsResponseBuilder;
|
||||||
|
|
||||||
@ -47,6 +44,9 @@ class Forms extends APIEndpoint {
|
|||||||
/** @var FormsRepository */
|
/** @var FormsRepository */
|
||||||
private $formsRepository;
|
private $formsRepository;
|
||||||
|
|
||||||
|
/** @var TemplateRepository */
|
||||||
|
private $templateRepository;
|
||||||
|
|
||||||
/** @var FormListingRepository */
|
/** @var FormListingRepository */
|
||||||
private $formListingRepository;
|
private $formListingRepository;
|
||||||
|
|
||||||
@ -62,8 +62,8 @@ class Forms extends APIEndpoint {
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
Listing\Handler $listingHandler,
|
Listing\Handler $listingHandler,
|
||||||
UserFlagsController $userFlags,
|
UserFlagsController $userFlags,
|
||||||
FormFactory $formFactory,
|
|
||||||
FormsRepository $formsRepository,
|
FormsRepository $formsRepository,
|
||||||
|
TemplateRepository $templateRepository,
|
||||||
FormListingRepository $formListingRepository,
|
FormListingRepository $formListingRepository,
|
||||||
FormsResponseBuilder $formsResponseBuilder,
|
FormsResponseBuilder $formsResponseBuilder,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
@ -73,9 +73,9 @@ class Forms extends APIEndpoint {
|
|||||||
) {
|
) {
|
||||||
$this->listingHandler = $listingHandler;
|
$this->listingHandler = $listingHandler;
|
||||||
$this->userFlags = $userFlags;
|
$this->userFlags = $userFlags;
|
||||||
$this->formFactory = $formFactory;
|
|
||||||
$this->wp = $wp;
|
$this->wp = $wp;
|
||||||
$this->formsRepository = $formsRepository;
|
$this->formsRepository = $formsRepository;
|
||||||
|
$this->templateRepository = $templateRepository;
|
||||||
$this->formListingRepository = $formListingRepository;
|
$this->formListingRepository = $formListingRepository;
|
||||||
$this->formsResponseBuilder = $formsResponseBuilder;
|
$this->formsResponseBuilder = $formsResponseBuilder;
|
||||||
$this->emoji = $emoji;
|
$this->emoji = $emoji;
|
||||||
@ -154,20 +154,6 @@ class Forms extends APIEndpoint {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function create($data = []) {
|
|
||||||
if (isset($data['template-id'])) {
|
|
||||||
$formEntity = $this->formFactory->createFormFromTemplate($data['template-id']);
|
|
||||||
} else {
|
|
||||||
$formEntity = $this->formFactory->createEmptyForm();
|
|
||||||
}
|
|
||||||
|
|
||||||
$form = $this->formsRepository->findOneById($formEntity->getId());
|
|
||||||
if ($form instanceof FormEntity) {
|
|
||||||
return $this->successResponse($this->formsResponseBuilder->build($form));
|
|
||||||
}
|
|
||||||
return $this->errorResponse();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function previewEditor($data = []) {
|
public function previewEditor($data = []) {
|
||||||
$formId = $data['id'] ?? null;
|
$formId = $data['id'] ?? null;
|
||||||
if (!$formId) {
|
if (!$formId) {
|
||||||
@ -179,11 +165,12 @@ class Forms extends APIEndpoint {
|
|||||||
|
|
||||||
public function saveEditor($data = []) {
|
public function saveEditor($data = []) {
|
||||||
$formId = (isset($data['id']) ? (int)$data['id'] : 0);
|
$formId = (isset($data['id']) ? (int)$data['id'] : 0);
|
||||||
|
$initialForm = $this->getFormTemplateData(TemplateRepository::INITIAL_FORM_TEMPLATE);
|
||||||
$name = ($data['name'] ?? __('New form', 'mailpoet'));
|
$name = ($data['name'] ?? __('New form', 'mailpoet'));
|
||||||
$body = ($data['body'] ?? []);
|
$body = ($data['body'] ?? $initialForm['body']);
|
||||||
$body = $this->dataSanitizer->sanitizeBody($body);
|
$body = $this->dataSanitizer->sanitizeBody($body);
|
||||||
$settings = ($data['settings'] ?? []);
|
$settings = ($data['settings'] ?? $initialForm['settings']);
|
||||||
$styles = ($data['styles'] ?? '');
|
$styles = ($data['styles'] ?? $initialForm['styles']);
|
||||||
$status = ($data['status'] ?? FormEntity::STATUS_ENABLED);
|
$status = ($data['status'] ?? FormEntity::STATUS_ENABLED);
|
||||||
|
|
||||||
// check if the form is used as a widget
|
// check if the form is used as a widget
|
||||||
@ -346,4 +333,10 @@ class Forms extends APIEndpoint {
|
|||||||
? $this->formsRepository->findOneById((int)$data['id'])
|
? $this->formsRepository->findOneById((int)$data['id'])
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getFormTemplateData(string $templateId): array {
|
||||||
|
$formTemplate = $this->templateRepository->getFormTemplate($templateId);
|
||||||
|
$form = $formTemplate->toFormEntity();
|
||||||
|
return $form->toArray();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,16 +70,16 @@ class FormsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanCreateANewForm() {
|
public function testItCanCreateANewForm() {
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
expect($response->data)->equals(
|
expect($response->data)->equals(
|
||||||
$this->reloadForm((int)$response->data['id'])->toArray()
|
$this->reloadForm((int)$response->data['id'])->toArray()
|
||||||
);
|
);
|
||||||
expect($response->data['name'])->equals('');
|
expect($response->data['name'])->equals('New form');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanStoreDataForPreview() {
|
public function testItCanStoreDataForPreview() {
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
$formId = $response->data['id'];
|
$formId = $response->data['id'];
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
expect($response->data)->equals(
|
expect($response->data)->equals(
|
||||||
@ -96,7 +96,7 @@ class FormsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanSaveFormEditor() {
|
public function testItCanSaveFormEditor() {
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
||||||
@ -112,7 +112,7 @@ class FormsTest extends \MailPoetTest {
|
|||||||
public function testItOnlyAdminCanSaveCustomHtml() {
|
public function testItOnlyAdminCanSaveCustomHtml() {
|
||||||
// Administrator
|
// Administrator
|
||||||
wp_set_current_user(1);
|
wp_set_current_user(1);
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
||||||
@ -132,7 +132,7 @@ class FormsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanExtractListsFromListSelectionBlock() {
|
public function testItCanExtractListsFromListSelectionBlock() {
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
||||||
@ -150,7 +150,7 @@ class FormsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItCanExtractListsFromNestedListSelectionBlock() {
|
public function testItCanExtractListsFromNestedListSelectionBlock() {
|
||||||
$response = $this->endpoint->create();
|
$response = $this->endpoint->saveEditor();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
|
|
||||||
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
$form = $this->reloadForm((int)$response->data['id'])->toArray();
|
||||||
|
Reference in New Issue
Block a user