Skip deleted segments in SubscribersFinder [MAILPOET-2026]
This commit is contained in:
@@ -21,6 +21,9 @@ class SubscribersFinder {
|
|||||||
$result = array();
|
$result = array();
|
||||||
foreach ($newsletter_segments_ids as $segment_id) {
|
foreach ($newsletter_segments_ids as $segment_id) {
|
||||||
$segment = Segment::findOne($segment_id);
|
$segment = Segment::findOne($segment_id);
|
||||||
|
if (!$segment instanceof Segment) {
|
||||||
|
continue; // skip deleted segments
|
||||||
|
}
|
||||||
$result = array_merge($result, $this->findSubscribersInSegment($segment, $subscribers_to_process_ids));
|
$result = array_merge($result, $this->findSubscribersInSegment($segment, $subscribers_to_process_ids));
|
||||||
}
|
}
|
||||||
return $this->unique($result);
|
return $this->unique($result);
|
||||||
|
@@ -56,7 +56,8 @@ class SubscribersFinderTest extends \MailPoetTest {
|
|||||||
|
|
||||||
function testFindSubscribersInSegmentInSegmentDefaultSegment() {
|
function testFindSubscribersInSegmentInSegmentDefaultSegment() {
|
||||||
$finder = new SubscribersFinder();
|
$finder = new SubscribersFinder();
|
||||||
$subscribers = $finder->findSubscribersInSegments(array($this->subscriber_2->id), array($this->segment_1->id));
|
$deleted_segment_id = 1000; // non-existent segment
|
||||||
|
$subscribers = $finder->findSubscribersInSegments(array($this->subscriber_2->id), array($this->segment_1->id, $deleted_segment_id));
|
||||||
expect($subscribers)->count(1);
|
expect($subscribers)->count(1);
|
||||||
expect($subscribers[$this->subscriber_2->id])->equals($this->subscriber_2->id);
|
expect($subscribers[$this->subscriber_2->id])->equals($this->subscriber_2->id);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user