Inject bulk action controller using DI

[MAILPOET-1689]
This commit is contained in:
Rostislav Wolny
2018-12-12 17:15:53 +01:00
parent 2839c86017
commit fd4bcee5f5
9 changed files with 181 additions and 221 deletions

View File

@ -14,10 +14,18 @@ use MailPoet\Models\StatisticsForms;
if(!defined('ABSPATH')) exit;
class Forms extends APIEndpoint {
/** @var Listing\BulkActionController */
private $bulk_action;
public $permissions = array(
'global' => AccessControl::PERMISSION_MANAGE_FORMS
);
function __construct(Listing\BulkActionController $bulk_action) {
$this->bulk_action = $bulk_action;
}
function get($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : false);
$form = Form::findOne($id);
@ -280,8 +288,7 @@ class Forms extends APIEndpoint {
function bulkAction($data = array()) {
try {
$bulk_action = new Listing\BulkActionController();
$meta = $bulk_action->apply('\MailPoet\Models\Form', $data);
$meta = $this->bulk_action->apply('\MailPoet\Models\Form', $data);
return $this->successResponse(null, $meta);
} catch(\Exception $e) {
return $this->errorResponse(array(

View File

@ -26,10 +26,18 @@ use MailPoet\WP\Functions as WPFunctions;
if(!defined('ABSPATH')) exit;
class Newsletters extends APIEndpoint {
/** @var Listing\BulkActionController */
private $bulk_action;
public $permissions = array(
'global' => AccessControl::PERMISSION_MANAGE_EMAILS
);
function __construct(Listing\BulkActionController $bulk_action) {
$this->bulk_action = $bulk_action;
}
function get($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : false);
$newsletter = Newsletter::findOne($id);
@ -438,8 +446,7 @@ class Newsletters extends APIEndpoint {
function bulkAction($data = array()) {
try {
$bulk_action = new Listing\BulkActionController();
$meta = $bulk_action->apply('\MailPoet\Models\Newsletter', $data);
$meta = $this->bulk_action->apply('\MailPoet\Models\Newsletter', $data);
return $this->successResponse(null, $meta);
} catch(\Exception $e) {
return $this->errorResponse(array(

View File

@ -16,6 +16,13 @@ class Segments extends APIEndpoint {
'global' => AccessControl::PERMISSION_MANAGE_SEGMENTS
);
/** @var Listing\BulkActionController */
private $bulk_action;
function __construct(Listing\BulkActionController $bulk_action) {
$this->bulk_action = $bulk_action;
}
function get($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : false);
$segment = Segment::findOne($id);
@ -152,8 +159,7 @@ class Segments extends APIEndpoint {
function bulkAction($data = array()) {
try {
$bulk_action = new Listing\BulkActionController();
$meta = $bulk_action->apply('\MailPoet\Models\Segment', $data);
$meta = $this->bulk_action->apply('\MailPoet\Models\Segment', $data);
return $this->successResponse(null, $meta);
} catch(\Exception $e) {
return $this->errorResponse(array(

View File

@ -29,6 +29,13 @@ class Subscribers extends APIEndpoint {
'methods' => array('subscribe' => AccessControl::NO_ACCESS_RESTRICTION)
);
/** @var Listing\BulkActionController */
private $bulk_action_controller;
public function __construct(Listing\BulkActionController $bulk_action_controller) {
$this->bulk_action_controller = $bulk_action_controller;
}
function get($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : false);
$subscriber = Subscriber::findOne($id);
@ -262,10 +269,9 @@ class Subscribers extends APIEndpoint {
function bulkAction($data = array()) {
try {
if(!isset($data['listing']['filter']['segment'])) {
$bulk_action = new Listing\BulkActionController();
return $this->successResponse(
null,
$bulk_action->apply('\MailPoet\Models\Subscriber', $data)
$this->bulk_action_controller->apply('\MailPoet\Models\Subscriber', $data)
);
} else {
$bulk_action = new BulkAction($data);