delete related scheduled_task_subscribers records

This commit is contained in:
Amine Ben hammou
2018-09-19 16:55:32 +02:00
parent 5524805ec3
commit c51a3f208c
2 changed files with 29 additions and 0 deletions

View File

@ -76,6 +76,11 @@ class ScheduledTask extends Model {
return $this; return $this;
} }
function delete() {
ScheduledTaskSubscriber::where('task_id', $this->id)->deleteMany();
return parent::delete();
}
static function touchAllByIds(array $ids) { static function touchAllByIds(array $ids) {
ScheduledTask::rawExecute( ScheduledTask::rawExecute(
'UPDATE `' . ScheduledTask::$_table . '`' . 'UPDATE `' . ScheduledTask::$_table . '`' .

View File

@ -5,6 +5,7 @@ use Carbon\Carbon;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask; use MailPoet\Models\ScheduledTask;
use MailPoet\Models\SendingQueue; use MailPoet\Models\SendingQueue;
use MailPoet\Models\ScheduledTaskSubscriber;
class ScheduledTaskTest extends \MailPoetTest { class ScheduledTaskTest extends \MailPoetTest {
function _before() { function _before() {
@ -86,7 +87,30 @@ class ScheduledTaskTest extends \MailPoetTest {
expect($task2_found->status)->equals(ScheduledTask::STATUS_PAUSED); expect($task2_found->status)->equals(ScheduledTask::STATUS_PAUSED);
} }
function testItDeletesRelatedScheduledTaskSubscriber() {
$task_id = $this->task->id;
ScheduledTaskSubscriber::createOrUpdate([
'task_id' => $task_id,
'subscriber_id' => 1
]);
ScheduledTaskSubscriber::createOrUpdate([
'task_id' => $task_id,
'subscriber_id' => 2
]);
ScheduledTaskSubscriber::createOrUpdate([
'task_id' => $task_id,
'subscriber_id' => 3
]);
$count = ScheduledTaskSubscriber::where('task_id', $task_id)->count();
expect($count)->equals(3);
$this->task->delete();
$count = ScheduledTaskSubscriber::where('task_id', $task_id)->count();
expect($count)->equals(0);
}
function _after() { function _after() {
\ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); \ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
\ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table);
} }
} }