Remove Newsletter model usages

[MAILPOET-4361]
This commit is contained in:
Sam Najian
2022-07-07 14:52:30 +02:00
committed by Veljko V
parent 7e6b6eac35
commit bd3b4f1e93
6 changed files with 14 additions and 46 deletions

View File

@@ -138,14 +138,11 @@ class NewslettersResponseBuilder {
? $statistics->asArray()
: false,
'preview_url' => $this->newsletterUrl->getViewInBrowserUrl(
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),
],
$newsletter,
null,
in_array($newsletter->getStatus(), [NewsletterEntity::STATUS_SENT, NewsletterEntity::STATUS_SENDING], true)
? $latestQueue
: false
: null
),
];

View File

@@ -399,13 +399,7 @@ class Newsletters extends APIEndpoint {
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
$url = $this->newsletterUrl->getViewInBrowserUrl(
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),
]
);
$url = $this->newsletterUrl->getViewInBrowserUrl($newsletter);
// strip protocol to avoid mix content error
return preg_replace('/^https?:/i', '', $url);
}

View File

@@ -5,7 +5,6 @@ namespace MailPoet\Newsletter\Shortcodes\Categories;
use MailPoet\Entities\NewsletterEntity;
use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Models\Newsletter as NewsletterModel;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\Subscriber as SubscriberModel;
use MailPoet\Newsletter\Url as NewsletterUrl;
@@ -51,7 +50,6 @@ class Link implements CategoryInterface {
): ?string {
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
$subscriberModel = $this->getSubscriberModel($subscriber);
$newsletterModel = $this->getNewsletterModel($newsletter);
$queueModel = $this->getQueueModel($queue);
switch ($shortcodeDetails['action']) {
@@ -81,7 +79,7 @@ class Link implements CategoryInterface {
case 'newsletter_view_in_browser_url':
$url = $this->newsletterUrl->getViewInBrowserUrl(
$newsletterModel,
$newsletter,
$wpUserPreview ? null : $subscriberModel,
$queueModel,
$wpUserPreview
@@ -112,7 +110,7 @@ class Link implements CategoryInterface {
public function processUrl($action, $url, $queue, $wpUserPreview = false): string {
if ($wpUserPreview) return $url;
return ($queue !== false && $this->trackingConfig->isEmailTrackingEnabled()) ?
return ($queue && $this->trackingConfig->isEmailTrackingEnabled()) ?
self::getFullShortcode($action) :
$url;
}
@@ -125,22 +123,21 @@ class Link implements CategoryInterface {
$wpUserPreview = false
): ?string {
$subscriberModel = $this->getSubscriberModel($subscriber);
$newsletterModel = $this->getNewsletterModel($newsletter);
$queueModel = $this->getQueueModel($queue);
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
switch ($shortcodeAction) {
case 'subscription_unsubscribe_url':
$url = $subscriptionUrlFactory->getConfirmUnsubscribeUrl($subscriber, self::getSendingQueueId($queue));
$url = $subscriptionUrlFactory->getConfirmUnsubscribeUrl($subscriber, self::getSendingQueueId($queue ? $queue) : null);
break;
case 'subscription_instant_unsubscribe_url':
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, self::getSendingQueueId($queue));
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, self::getSendingQueueId($queue ? $queue) : null);
break;
case 'subscription_manage_url':
$url = $subscriptionUrlFactory->getManageUrl($subscriber);
break;
case 'newsletter_view_in_browser_url':
$url = $this->newsletterUrl->getViewInBrowserUrl(
$newsletterModel,
$newsletter,
$subscriberModel,
$queueModel,
false
@@ -184,14 +181,6 @@ class Link implements CategoryInterface {
return null;
}
// temporary function until Links are refactored to Doctrine
private function getNewsletterModel(NewsletterEntity $newsletter = null): ?NewsletterModel {
if (!$newsletter) return null;
$newsletterModel = NewsletterModel::where('id', $newsletter->getId())->findOne();
if ($newsletterModel) return $newsletterModel;
return null;
}
// temporary function until Links are refactored to Doctrine
private function getQueueModel(SendingQueueEntity $queue = null): ?SendingQueue {
if (!$queue) return null;

View File

@@ -27,7 +27,7 @@ class Url {
}
public function getViewInBrowserUrl(
$newsletter,
NewsletterEntity $newsletter = null,
$subscriber = false,
$queue = false,
bool $preview = true
@@ -46,14 +46,9 @@ class Url {
);
}
public function createUrlDataObject($newsletter, $subscriber, $queue, $preview) {
if ($newsletter instanceof NewsletterEntity) {
$newsletterId = (!empty($newsletter->getId())) ? (int)$newsletter->getId() : 0;
$newsletterHash = (!empty($newsletter->getHash())) ? $newsletter->getHash() : 0;
} else {
$newsletterId = (!empty($newsletter->id)) ? (int)$newsletter->id : 0;
$newsletterHash = (!empty($newsletter->hash)) ? $newsletter->hash : 0;
}
public function createUrlDataObject(NewsletterEntity $newsletter = null, $subscriber, $queue, $preview) {
$newsletterId = $newsletter && $newsletter->getId() ? $newsletter->getId() : 0;
$newsletterHash = $newsletter && $newsletter->getHash() ? $newsletter->getHash() : 0;
if ($queue instanceof SendingQueueEntity) {
$sendingQueueId = (!empty($queue->getId())) ? (int)$queue->getId() : 0;

View File

@@ -66,12 +66,7 @@ class SendPreviewControllerTest extends \MailPoetTest {
function ($newsletter, $subscriber, $extraParams) {
$unsubscribeLink = $this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null);
$manageLink = $this->subscriptionUrlFactory->getManageUrl(null);
$viewInBrowserLink = $this->newsletterUrl->getViewInBrowserUrl(
(object)[
'id' => $this->newsletter->getId(),
'hash' => $this->newsletter->getHash(),
]
);
$viewInBrowserLink = $this->newsletterUrl->getViewInBrowserUrl($this->newsletter);
$mailerMetaInfo = new MetaInfo;
expect(is_array($newsletter))->true();

View File

@@ -9,7 +9,6 @@ use MailPoet\Entities\SendingQueueEntity;
use MailPoet\Entities\SubscriberCustomFieldEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Models\Newsletter;
use MailPoet\Models\Newsletter as NewsletterModel;
use MailPoet\Models\Subscriber;
use MailPoet\Newsletter\Shortcodes\Categories\Date;
use MailPoet\Newsletter\Shortcodes\Shortcodes;
@@ -352,7 +351,6 @@ class ShortcodesTest extends \MailPoetTest {
$shortcodesObject = $this->shortcodesObject;
$shortcodesObject->setWpUserPreview(true);
$shortcodesObject->setSubscriber(null);
$newsletterModel = NewsletterModel::where('id', $this->newsletter->getId())->findOne();
$shortcodes = [
'[link:subscription_unsubscribe_url]',
'[link:subscription_instant_unsubscribe_url]',
@@ -363,7 +361,7 @@ class ShortcodesTest extends \MailPoetTest {
$this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null),
$this->subscriptionUrlFactory->getUnsubscribeUrl(null),
$this->subscriptionUrlFactory->getManageUrl(null),
$this->newsletterUrl->getViewInBrowserUrl($newsletterModel),
$this->newsletterUrl->getViewInBrowserUrl($this->newsletter),
];
$result = $shortcodesObject->process($shortcodes);
// hash is returned