Fix clicked segments
[MAILPOET-4045]
This commit is contained in:
@@ -63,11 +63,15 @@ class DynamicSegmentsResponseBuilder {
|
||||
}
|
||||
if (($filter['segmentType'] === DynamicSegmentFilterData::TYPE_EMAIL)) {
|
||||
// compatibility with older filters
|
||||
if ((($filter['action'] === EmailAction::ACTION_OPENED) || ($filter['action'] === EmailAction::ACTION_NOT_OPENED))) {
|
||||
if (isset($filter['newsletter_id']) && !isset($filter['newsletters'])) {
|
||||
// make sure the newsletters are an array
|
||||
$filter['newsletters'] = [intval($filter['newsletter_id'])];
|
||||
unset($filter['newsletter_id']);
|
||||
}
|
||||
} else {
|
||||
$filter['newsletter_id'] = intval($filter['newsletter_id']);
|
||||
}
|
||||
if ($filter['action'] === EmailAction::ACTION_NOT_OPENED) {
|
||||
// convert not opened
|
||||
$filter['action'] = EmailAction::ACTION_OPENED;
|
||||
|
@@ -147,14 +147,22 @@ class FilterDataMapper {
|
||||
'connect' => $data['connect'],
|
||||
]);
|
||||
}
|
||||
if (empty($data['newsletters']) || !is_array($data['newsletters'])) throw new InvalidFilterException('Missing newsletter', InvalidFilterException::MISSING_NEWSLETTER_ID);
|
||||
|
||||
$filterData = [
|
||||
'newsletters' => array_map(function ($segmentId) {
|
||||
return intval($segmentId);
|
||||
}, $data['newsletters']),
|
||||
'connect' => $data['connect'],
|
||||
'operator' => $data['operator'] ?? DynamicSegmentFilterData::OPERATOR_ANY,
|
||||
];
|
||||
|
||||
if (($data['action'] !== EmailAction::ACTION_OPENED) && ($data['action'] !== EmailAction::ACTION_NOT_OPENED)) {
|
||||
if (empty($data['newsletter_id'])) throw new InvalidFilterException('Missing newsletter id', InvalidFilterException::MISSING_NEWSLETTER_ID);
|
||||
$filterData['newsletter_id'] = $data['newsletter_id'];
|
||||
} else {
|
||||
if (empty($data['newsletters']) || !is_array($data['newsletters'])) throw new InvalidFilterException('Missing newsletter', InvalidFilterException::MISSING_NEWSLETTER_ID);
|
||||
$filterData['newsletters'] = array_map(function ($segmentId) {
|
||||
return intval($segmentId);
|
||||
}, $data['newsletters']);
|
||||
}
|
||||
|
||||
$filterType = DynamicSegmentFilterData::TYPE_EMAIL;
|
||||
$action = $data['action'];
|
||||
if (isset($data['link_id'])) {
|
||||
|
Reference in New Issue
Block a user