Refactor MailPoet\API to use new settings

[MAILPOET-1757]
This commit is contained in:
Rostislav Wolny
2019-01-30 13:53:44 +01:00
parent 3aa0926fb9
commit 3b5962d36a
12 changed files with 130 additions and 60 deletions

View File

@ -20,6 +20,7 @@ use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Renderer\Renderer;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Newsletter\Url as NewsletterUrl;
use MailPoet\Settings\SettingsController;
use MailPoet\WP\Functions as WPFunctions;
if(!defined('ABSPATH')) exit;
@ -35,6 +36,9 @@ class Newsletters extends APIEndpoint {
/** @var WPFunctions */
private $wp;
/** @var SettingsController */
private $settings;
public $permissions = array(
'global' => AccessControl::PERMISSION_MANAGE_EMAILS
);
@ -42,11 +46,13 @@ class Newsletters extends APIEndpoint {
function __construct(
Listing\BulkActionController $bulk_action,
Listing\Handler $listing_handler,
WPFunctions $wp
WPFunctions $wp,
SettingsController $settings
) {
$this->bulk_action = $bulk_action;
$this->listing_handler = $listing_handler;
$this->wp = $wp;
$this->settings = $settings;
}
function get($data = array()) {
@ -444,8 +450,8 @@ class Newsletters extends APIEndpoint {
'count' => $listing_data['count'],
'filters' => $listing_data['filters'],
'groups' => $listing_data['groups'],
'mta_log' => Setting::getValue('mta_log'),
'mta_method' => Setting::getValue('mta.method'),
'mta_log' => $this->settings->get('mta_log'),
'mta_method' => $this->settings->get('mta.method'),
'cron_accessible' => CronHelper::isDaemonAccessible(),
'current_time' => $this->wp->currentTime('mysql')
));

View File

@ -7,16 +7,25 @@ use MailPoet\API\JSON\Error as APIError;
use MailPoet\Config\AccessControl;
use MailPoet\Models\Setting;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
if(!defined('ABSPATH')) exit;
class Settings extends APIEndpoint {
/** @var SettingsController */
private $settings;
public $permissions = array(
'global' => AccessControl::PERMISSION_MANAGE_SETTINGS
);
function __construct(SettingsController $settings) {
$this->settings = $settings;
}
function get() {
return $this->successResponse(Setting::getAll());
return $this->successResponse($this->settings->getAll());
}
function set($settings = array()) {
@ -28,11 +37,11 @@ class Settings extends APIEndpoint {
));
} else {
foreach($settings as $name => $value) {
Setting::setValue($name, $value);
$this->settings->set($name, $value);
}
$bridge = new Bridge();
$bridge->onSettingsSave($settings);
return $this->successResponse(Setting::getAll());
return $this->successResponse($this->settings->getAll());
}
}
}
}

View File

@ -6,6 +6,7 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
use MailPoet\WP\Functions as WPFunctions;
use MailPoet\Config\AccessControl;
use MailPoet\Config\Activator;
use MailPoet\Settings\SettingsController;
if(!defined('ABSPATH')) exit;
@ -21,7 +22,7 @@ class Setup extends APIEndpoint {
function reset() {
try {
$activator = new Activator();
$activator = new Activator(new SettingsController());
$activator->deactivate();
$activator->activate();
$this->wp->doAction('mailpoet_setup_reset');

View File

@ -8,12 +8,12 @@ use MailPoet\Config\AccessControl;
use MailPoet\Form\Util\FieldNameObfuscator;
use MailPoet\Listing;
use MailPoet\Models\Form;
use MailPoet\Models\Setting;
use MailPoet\Models\StatisticsForms;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Scheduler\Scheduler;
use MailPoet\Segments\BulkAction;
use MailPoet\Segments\SubscribersListings;
use MailPoet\Settings\SettingsController;
use MailPoet\Subscribers\RequiredCustomFieldValidator;
use MailPoet\Subscribers\Source;
use MailPoet\Subscription\Throttling as SubscriptionThrottling;
@ -41,20 +41,26 @@ class Subscribers extends APIEndpoint {
/** @var Listing\Handler */
private $listing_handler;
/** @var WPFunctions */
private $wp;
/** @var SettingsController */
private $settings;
public function __construct(
Listing\BulkActionController $bulk_action_controller,
SubscribersListings $subscribers_listings,
RequiredCustomFieldValidator $required_custom_field_validator,
Listing\Handler $listing_handler,
WPFunctions $wp
WPFunctions $wp,
SettingsController $settings
) {
$this->bulk_action_controller = $bulk_action_controller;
$this->subscribers_listings = $subscribers_listings;
$this->required_custom_field_validator = $required_custom_field_validator;
$this->listing_handler = $listing_handler;
$this->wp = $wp;
$this->settings = $settings;
}
function get($data = array()) {
@ -105,7 +111,7 @@ class Subscribers extends APIEndpoint {
$form = Form::findOne($form_id);
unset($data['form_id']);
$recaptcha = Setting::getValue('re_captcha');
$recaptcha = $this->settings->get('re_captcha');
if(!$form) {
return $this->badRequest(array(