Use Newsletter\Url as service

[MAILPOET-3269]
This commit is contained in:
Jan Lysý
2021-05-28 11:21:32 +02:00
committed by Veljko V
parent c9636ebf1b
commit aeeceeeb8d
16 changed files with 130 additions and 35 deletions

View File

@ -32,14 +32,19 @@ class NewslettersResponseBuilder {
/** @var EntityManager */
private $entityManager;
/** @var NewsletterUrl */
private $newsletterUrl;
public function __construct(
EntityManager $entityManager,
NewslettersRepository $newslettersRepository,
NewsletterStatisticsRepository $newslettersStatsRepository
NewsletterStatisticsRepository $newslettersStatsRepository,
NewsletterUrl $newsletterUrl
) {
$this->newslettersStatsRepository = $newslettersStatsRepository;
$this->newslettersRepository = $newslettersRepository;
$this->entityManager = $entityManager;
$this->newsletterUrl = $newsletterUrl;
}
public function build(NewsletterEntity $newsletter, $relations = []) {
@ -125,7 +130,7 @@ class NewslettersResponseBuilder {
'statistics' => ($statistics && $newsletter->getType() !== NewsletterEntity::TYPE_NOTIFICATION)
? $statistics->asArray()
: false,
'preview_url' => NewsletterUrl::getViewInBrowserUrl(
'preview_url' => $this->newsletterUrl->getViewInBrowserUrl(
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),

View File

@ -72,6 +72,9 @@ class Newsletters extends APIEndpoint {
/** @var NewsletterSaveController */
private $newsletterSaveController;
/** @var NewsletterUrl */
private $newsletterUrl;
public function __construct(
Listing\Handler $listingHandler,
WPFunctions $wp,
@ -84,7 +87,8 @@ class Newsletters extends APIEndpoint {
Emoji $emoji,
SubscribersFeature $subscribersFeature,
SendPreviewController $sendPreviewController,
NewsletterSaveController $newsletterSaveController
NewsletterSaveController $newsletterSaveController,
NewsletterUrl $newsletterUrl
) {
$this->listingHandler = $listingHandler;
$this->wp = $wp;
@ -98,6 +102,7 @@ class Newsletters extends APIEndpoint {
$this->subscribersFeature = $subscribersFeature;
$this->sendPreviewController = $sendPreviewController;
$this->newsletterSaveController = $newsletterSaveController;
$this->newsletterUrl = $newsletterUrl;
}
public function get($data = []) {
@ -375,7 +380,7 @@ class Newsletters extends APIEndpoint {
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
$url = NewsletterUrl::getViewInBrowserUrl(
$url = $this->newsletterUrl->getViewInBrowserUrl(
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),