Set default sender on newsletter save

[MAILPOET-1415]
This commit is contained in:
Pavel Dohnal
2018-06-20 11:22:11 +01:00
parent 4dd9244194
commit 55affcb556
3 changed files with 34 additions and 0 deletions

View File

@ -81,6 +81,10 @@ class Newsletters extends APIEndpoint {
}
}
if(isset($data['sender_address']) && isset($data['sender_name'])) {
Setting::saveDefaultSenderIfNeeded($data['sender_address'], $data['sender_name']);
}
if(!empty($options)) {
$option_fields = NewsletterOptionField::where(
'newsletter_type',

View File

@ -158,4 +158,14 @@ class Setting extends Model {
$value = self::where('name', $value)->findOne();
return ($value) ? $value->delete() : false;
}
public static function saveDefaultSenderIfNeeded($sender_address, $sender_name) {
if(empty($sender_address) || empty($sender_name) || Setting::getValue('sender')) {
return;
}
Setting::setValue('sender', array(
'address' => $sender_address,
'name' => $sender_name
));
}
}

View File

@ -147,6 +147,26 @@ class SettingTest extends \MailPoetTest {
expect(Setting::getValue('test.key'))->null();
}
function testSaveDefaultSenderIfNeededNotSaveEmptyValue() {
Setting::saveDefaultSenderIfNeeded('', null);
expect(Setting::getValue('sender'))->null();
}
function testSaveDefaultSenderIfNeededDoesntOverride() {
Setting::setValue('sender', array('name' => 'sender1', 'address' => 'sender1address'));
Setting::saveDefaultSenderIfNeeded('sender2address', 'sender1');
$settings = Setting::getValue('sender');
expect($settings['name'])->equals('sender1');
expect($settings['address'])->equals('sender1address');
}
function testSaveDefaultSenderIfNeeded() {
Setting::saveDefaultSenderIfNeeded('senderAddress', 'sender');
$settings = Setting::getValue('sender');
expect($settings['name'])->equals('sender');
expect($settings['address'])->equals('senderAddress');
}
function _after() {
Setting::deleteMany();
}