Merge pull request #1256 from mailpoet/bugfix
fixing Segment::bulkDelete not deleting subscribers assiciations [MAILPOET-1287]
This commit is contained in:
@ -258,9 +258,15 @@ class Segment extends Model {
|
||||
static function bulkDelete($orm) {
|
||||
$count = parent::bulkAction($orm, function($ids) {
|
||||
// delete segments (only default)
|
||||
Segment::whereIn('id', $ids)
|
||||
$segments = Segment::whereIn('id', $ids)
|
||||
->where('type', Segment::TYPE_DEFAULT)
|
||||
->findMany();
|
||||
$ids = array_map(function($segment) {
|
||||
return $segment->id;
|
||||
}, $segments);
|
||||
SubscriberSegment::whereIn('segment_id', $ids)
|
||||
->deleteMany();
|
||||
Segment::whereIn('id', $ids)->deleteMany();
|
||||
});
|
||||
|
||||
return array('count' => $count);
|
||||
|
@ -13,6 +13,7 @@ use MailPoet\Models\NewsletterOption;
|
||||
use MailPoet\Models\NewsletterOptionField;
|
||||
use MailPoet\Models\NewsletterSegment;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Newsletter\Url;
|
||||
@ -816,6 +817,7 @@ class NewslettersTest extends \MailPoetTest {
|
||||
\ORM::raw_execute('TRUNCATE ' . NewsletterSegment::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . NewsletterOptionField::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . SubscriberSegment::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,8 @@ namespace MailPoet\Test\API\JSON\v1;
|
||||
use MailPoet\API\JSON\v1\Segments;
|
||||
use MailPoet\API\JSON\Response as APIResponse;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
|
||||
class SegmentsTest extends \MailPoetTest {
|
||||
function _before() {
|
||||
@ -122,6 +124,12 @@ class SegmentsTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
function testItCanBulkDeleteSegments() {
|
||||
$subscriber_segment = SubscriberSegment::create(array(
|
||||
'subscriber_id' => 1,
|
||||
'segment_id' => $this->segment_1->id,
|
||||
'status' => Subscriber::STATUS_SUBSCRIBED
|
||||
));
|
||||
|
||||
$router = new Segments();
|
||||
$response = $router->bulkAction(array(
|
||||
'action' => 'trash',
|
||||
@ -145,6 +153,8 @@ class SegmentsTest extends \MailPoetTest {
|
||||
));
|
||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||
expect($response->meta['count'])->equals(0);
|
||||
|
||||
expect(SubscriberSegment::findOne($subscriber_segment->id))->equals(false);
|
||||
}
|
||||
|
||||
function _after() {
|
||||
|
Reference in New Issue
Block a user