File "SegmentSaveController.php"
Full Path: /home/warrior1/public_html/wp-content/plugins/mailpoet/lib/Segments/DynamicSegments/SegmentSaveController.php
File size: 1.16 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace MailPoet\Segments\DynamicSegments;
if (!defined('ABSPATH')) exit;
use MailPoet\ConflictException;
use MailPoet\Entities\SegmentEntity;
use MailPoet\NotFoundException;
use MailPoet\Segments\SegmentsRepository;
use MailPoetVendor\Doctrine\ORM\ORMException;
class SegmentSaveController {
/** @var SegmentsRepository */
private $segmentsRepository;
/** @var FilterDataMapper */
private $filterDataMapper;
public function __construct(
SegmentsRepository $segmentsRepository,
FilterDataMapper $filterDataMapper
) {
$this->segmentsRepository = $segmentsRepository;
$this->filterDataMapper = $filterDataMapper;
}
/**
* @throws ConflictException
* @throws NotFoundException
* @throws Exceptions\InvalidFilterException
* @throws ORMException
*/
public function save(array $data = []): SegmentEntity {
$id = isset($data['id']) ? (int)$data['id'] : null;
$name = $data['name'] ?? '';
$description = $data['description'] ?? '';
$filtersData = $this->filterDataMapper->map($data);
return $this->segmentsRepository->createOrUpdate($name, $description, SegmentEntity::TYPE_DYNAMIC, $filtersData, $id);
}
}