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