Use Doctrine instead of Paris in Import

[MAILPOET-3378]
This commit is contained in:
Jan Lysý
2021-02-05 16:07:03 +01:00
committed by Veljko V
parent 78d87120f3
commit 09acbb0d07
5 changed files with 198 additions and 73 deletions

View File

@ -5,10 +5,16 @@ namespace MailPoet\API\JSON\v1;
use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\Config\AccessControl;
use MailPoet\Cron\Workers\WooCommerceSync;
use MailPoet\CustomFields\CustomFieldsRepository;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Segment;
use MailPoet\Newsletter\Options\NewsletterOptionsRepository;
use MailPoet\Segments\WP;
use MailPoet\Subscribers\ImportExport\Import\Import;
use MailPoet\Subscribers\ImportExport\Import\MailChimp;
use MailPoet\Subscribers\SubscriberCustomFieldRepository;
use MailPoet\Subscribers\SubscriberSegmentRepository;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoetVendor\Carbon\Carbon;
class ImportExport extends APIEndpoint {
@ -16,12 +22,39 @@ class ImportExport extends APIEndpoint {
/** @var WP */
private $wpSegment;
/** @var CustomFieldsRepository */
private $customFieldsRepository;
/** @var NewsletterOptionsRepository */
private $newsletterOptionsRepository;
/** @var SubscriberCustomFieldRepository */
private $subscriberCustomFieldRepository;
/** @var SubscribersRepository */
private $subscriberRepository;
/** @var SubscriberSegmentRepository */
private $subscriberSegmentRepository;
public $permissions = [
'global' => AccessControl::PERMISSION_MANAGE_SUBSCRIBERS,
];
public function __construct(WP $wpSegment) {
public function __construct(
WP $wpSegment,
CustomFieldsRepository $customFieldsRepository,
NewsletterOptionsRepository $newsletterOptionsRepository,
SubscriberCustomFieldRepository $subscriberCustomFieldRepository,
SubscribersRepository $subscribersRepository,
SubscriberSegmentRepository $subscriberSegmentRepository
) {
$this->wpSegment = $wpSegment;
$this->customFieldsRepository = $customFieldsRepository;
$this->newsletterOptionsRepository = $newsletterOptionsRepository;
$this->subscriberCustomFieldRepository = $subscriberCustomFieldRepository;
$this->subscriberRepository = $subscribersRepository;
$this->subscriberSegmentRepository = $subscriberSegmentRepository;
}
public function getMailChimpLists($data) {
@ -63,8 +96,13 @@ class ImportExport extends APIEndpoint {
public function processImport($data) {
try {
$import = new \MailPoet\Subscribers\ImportExport\Import\Import(
$import = new Import(
$this->wpSegment,
$this->customFieldsRepository,
$this->newsletterOptionsRepository,
$this->subscriberCustomFieldRepository,
$this->subscriberRepository,
$this->subscriberSegmentRepository,
json_decode($data, true)
);
$process = $import->process();