Refactor get custom field method to Doctrine

[MAILPOET-3628]
This commit is contained in:
Pavel Dohnal
2021-09-21 15:16:09 +02:00
committed by Veljko V
parent 518c33187f
commit b368a76593

View File

@ -3,14 +3,22 @@
namespace MailPoet\API\MP\v1; namespace MailPoet\API\MP\v1;
use MailPoet\CustomFields\ApiDataSanitizer; use MailPoet\CustomFields\ApiDataSanitizer;
use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Models\CustomField; use MailPoet\Models\CustomField;
class CustomFields { class CustomFields {
/** @var ApiDataSanitizer */ /** @var ApiDataSanitizer */
private $customFieldsDataSanitizer; private $customFieldsDataSanitizer;
public function __construct(ApiDataSanitizer $customFieldsDataSanitizer) { /** @var CustomFieldsRepository */
private $customFieldsRepository;
public function __construct(
ApiDataSanitizer $customFieldsDataSanitizer,
CustomFieldsRepository $customFieldsRepository
) {
$this->customFieldsDataSanitizer = $customFieldsDataSanitizer; $this->customFieldsDataSanitizer = $customFieldsDataSanitizer;
$this->customFieldsRepository = $customFieldsRepository;
} }
public function getSubscriberFields(): array { public function getSubscriberFields(): array {
@ -41,18 +49,14 @@ class CustomFields {
], ],
]; ];
$customFields = CustomField::selectMany(['id', 'name', 'type', 'params'])->findMany(); $customFields = $this->customFieldsRepository->findAll();
foreach ($customFields as $customField) { foreach ($customFields as $customField) {
$result = [ $result = [
'id' => 'cf_' . $customField->id, 'id' => 'cf_' . $customField->getId(),
'name' => $customField->name, 'name' => $customField->getName(),
'type' => $customField->type, 'type' => $customField->getType(),
'params' => $customField->getParams(),
]; ];
if (is_serialized($customField->params)) {
$result['params'] = unserialize($customField->params);
} else {
$result['params'] = $customField->params;
}
$data[] = $result; $data[] = $result;
} }