Remove Newsletter model usages
[MAILPOET-4361]
This commit is contained in:
@@ -138,14 +138,11 @@ class NewslettersResponseBuilder {
|
|||||||
? $statistics->asArray()
|
? $statistics->asArray()
|
||||||
: false,
|
: false,
|
||||||
'preview_url' => $this->newsletterUrl->getViewInBrowserUrl(
|
'preview_url' => $this->newsletterUrl->getViewInBrowserUrl(
|
||||||
(object)[
|
$newsletter,
|
||||||
'id' => $newsletter->getId(),
|
|
||||||
'hash' => $newsletter->getHash(),
|
|
||||||
],
|
|
||||||
null,
|
null,
|
||||||
in_array($newsletter->getStatus(), [NewsletterEntity::STATUS_SENT, NewsletterEntity::STATUS_SENDING], true)
|
in_array($newsletter->getStatus(), [NewsletterEntity::STATUS_SENT, NewsletterEntity::STATUS_SENDING], true)
|
||||||
? $latestQueue
|
? $latestQueue
|
||||||
: false
|
: null
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@@ -399,13 +399,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
|
|
||||||
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
|
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
|
||||||
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
|
$this->fixMissingHash([$newsletter]); // Fix for MAILPOET-3275. Remove after May 2021
|
||||||
$url = $this->newsletterUrl->getViewInBrowserUrl(
|
$url = $this->newsletterUrl->getViewInBrowserUrl($newsletter);
|
||||||
(object)[
|
|
||||||
'id' => $newsletter->getId(),
|
|
||||||
'hash' => $newsletter->getHash(),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
// strip protocol to avoid mix content error
|
// strip protocol to avoid mix content error
|
||||||
return preg_replace('/^https?:/i', '', $url);
|
return preg_replace('/^https?:/i', '', $url);
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,6 @@ namespace MailPoet\Newsletter\Shortcodes\Categories;
|
|||||||
use MailPoet\Entities\NewsletterEntity;
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Entities\SendingQueueEntity;
|
use MailPoet\Entities\SendingQueueEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Models\Newsletter as NewsletterModel;
|
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
use MailPoet\Models\Subscriber as SubscriberModel;
|
use MailPoet\Models\Subscriber as SubscriberModel;
|
||||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||||
@@ -51,7 +50,6 @@ class Link implements CategoryInterface {
|
|||||||
): ?string {
|
): ?string {
|
||||||
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
||||||
$subscriberModel = $this->getSubscriberModel($subscriber);
|
$subscriberModel = $this->getSubscriberModel($subscriber);
|
||||||
$newsletterModel = $this->getNewsletterModel($newsletter);
|
|
||||||
$queueModel = $this->getQueueModel($queue);
|
$queueModel = $this->getQueueModel($queue);
|
||||||
|
|
||||||
switch ($shortcodeDetails['action']) {
|
switch ($shortcodeDetails['action']) {
|
||||||
@@ -81,7 +79,7 @@ class Link implements CategoryInterface {
|
|||||||
|
|
||||||
case 'newsletter_view_in_browser_url':
|
case 'newsletter_view_in_browser_url':
|
||||||
$url = $this->newsletterUrl->getViewInBrowserUrl(
|
$url = $this->newsletterUrl->getViewInBrowserUrl(
|
||||||
$newsletterModel,
|
$newsletter,
|
||||||
$wpUserPreview ? null : $subscriberModel,
|
$wpUserPreview ? null : $subscriberModel,
|
||||||
$queueModel,
|
$queueModel,
|
||||||
$wpUserPreview
|
$wpUserPreview
|
||||||
@@ -112,7 +110,7 @@ class Link implements CategoryInterface {
|
|||||||
|
|
||||||
public function processUrl($action, $url, $queue, $wpUserPreview = false): string {
|
public function processUrl($action, $url, $queue, $wpUserPreview = false): string {
|
||||||
if ($wpUserPreview) return $url;
|
if ($wpUserPreview) return $url;
|
||||||
return ($queue !== false && $this->trackingConfig->isEmailTrackingEnabled()) ?
|
return ($queue && $this->trackingConfig->isEmailTrackingEnabled()) ?
|
||||||
self::getFullShortcode($action) :
|
self::getFullShortcode($action) :
|
||||||
$url;
|
$url;
|
||||||
}
|
}
|
||||||
@@ -125,22 +123,21 @@ class Link implements CategoryInterface {
|
|||||||
$wpUserPreview = false
|
$wpUserPreview = false
|
||||||
): ?string {
|
): ?string {
|
||||||
$subscriberModel = $this->getSubscriberModel($subscriber);
|
$subscriberModel = $this->getSubscriberModel($subscriber);
|
||||||
$newsletterModel = $this->getNewsletterModel($newsletter);
|
|
||||||
$queueModel = $this->getQueueModel($queue);
|
$queueModel = $this->getQueueModel($queue);
|
||||||
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
$subscriptionUrlFactory = SubscriptionUrlFactory::getInstance();
|
||||||
switch ($shortcodeAction) {
|
switch ($shortcodeAction) {
|
||||||
case 'subscription_unsubscribe_url':
|
case 'subscription_unsubscribe_url':
|
||||||
$url = $subscriptionUrlFactory->getConfirmUnsubscribeUrl($subscriber, self::getSendingQueueId($queue));
|
$url = $subscriptionUrlFactory->getConfirmUnsubscribeUrl($subscriber, self::getSendingQueueId($queue ? $queue) : null);
|
||||||
break;
|
break;
|
||||||
case 'subscription_instant_unsubscribe_url':
|
case 'subscription_instant_unsubscribe_url':
|
||||||
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, self::getSendingQueueId($queue));
|
$url = $subscriptionUrlFactory->getUnsubscribeUrl($subscriber, self::getSendingQueueId($queue ? $queue) : null);
|
||||||
break;
|
break;
|
||||||
case 'subscription_manage_url':
|
case 'subscription_manage_url':
|
||||||
$url = $subscriptionUrlFactory->getManageUrl($subscriber);
|
$url = $subscriptionUrlFactory->getManageUrl($subscriber);
|
||||||
break;
|
break;
|
||||||
case 'newsletter_view_in_browser_url':
|
case 'newsletter_view_in_browser_url':
|
||||||
$url = $this->newsletterUrl->getViewInBrowserUrl(
|
$url = $this->newsletterUrl->getViewInBrowserUrl(
|
||||||
$newsletterModel,
|
$newsletter,
|
||||||
$subscriberModel,
|
$subscriberModel,
|
||||||
$queueModel,
|
$queueModel,
|
||||||
false
|
false
|
||||||
@@ -184,14 +181,6 @@ class Link implements CategoryInterface {
|
|||||||
return null;
|
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
|
// temporary function until Links are refactored to Doctrine
|
||||||
private function getQueueModel(SendingQueueEntity $queue = null): ?SendingQueue {
|
private function getQueueModel(SendingQueueEntity $queue = null): ?SendingQueue {
|
||||||
if (!$queue) return null;
|
if (!$queue) return null;
|
||||||
|
@@ -27,7 +27,7 @@ class Url {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getViewInBrowserUrl(
|
public function getViewInBrowserUrl(
|
||||||
$newsletter,
|
NewsletterEntity $newsletter = null,
|
||||||
$subscriber = false,
|
$subscriber = false,
|
||||||
$queue = false,
|
$queue = false,
|
||||||
bool $preview = true
|
bool $preview = true
|
||||||
@@ -46,14 +46,9 @@ class Url {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createUrlDataObject($newsletter, $subscriber, $queue, $preview) {
|
public function createUrlDataObject(NewsletterEntity $newsletter = null, $subscriber, $queue, $preview) {
|
||||||
if ($newsletter instanceof NewsletterEntity) {
|
$newsletterId = $newsletter && $newsletter->getId() ? $newsletter->getId() : 0;
|
||||||
$newsletterId = (!empty($newsletter->getId())) ? (int)$newsletter->getId() : 0;
|
$newsletterHash = $newsletter && $newsletter->getHash() ? $newsletter->getHash() : 0;
|
||||||
$newsletterHash = (!empty($newsletter->getHash())) ? $newsletter->getHash() : 0;
|
|
||||||
} else {
|
|
||||||
$newsletterId = (!empty($newsletter->id)) ? (int)$newsletter->id : 0;
|
|
||||||
$newsletterHash = (!empty($newsletter->hash)) ? $newsletter->hash : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($queue instanceof SendingQueueEntity) {
|
if ($queue instanceof SendingQueueEntity) {
|
||||||
$sendingQueueId = (!empty($queue->getId())) ? (int)$queue->getId() : 0;
|
$sendingQueueId = (!empty($queue->getId())) ? (int)$queue->getId() : 0;
|
||||||
|
@@ -66,12 +66,7 @@ class SendPreviewControllerTest extends \MailPoetTest {
|
|||||||
function ($newsletter, $subscriber, $extraParams) {
|
function ($newsletter, $subscriber, $extraParams) {
|
||||||
$unsubscribeLink = $this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null);
|
$unsubscribeLink = $this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null);
|
||||||
$manageLink = $this->subscriptionUrlFactory->getManageUrl(null);
|
$manageLink = $this->subscriptionUrlFactory->getManageUrl(null);
|
||||||
$viewInBrowserLink = $this->newsletterUrl->getViewInBrowserUrl(
|
$viewInBrowserLink = $this->newsletterUrl->getViewInBrowserUrl($this->newsletter);
|
||||||
(object)[
|
|
||||||
'id' => $this->newsletter->getId(),
|
|
||||||
'hash' => $this->newsletter->getHash(),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
$mailerMetaInfo = new MetaInfo;
|
$mailerMetaInfo = new MetaInfo;
|
||||||
|
|
||||||
expect(is_array($newsletter))->true();
|
expect(is_array($newsletter))->true();
|
||||||
|
@@ -9,7 +9,6 @@ use MailPoet\Entities\SendingQueueEntity;
|
|||||||
use MailPoet\Entities\SubscriberCustomFieldEntity;
|
use MailPoet\Entities\SubscriberCustomFieldEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\Newsletter as NewsletterModel;
|
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
||||||
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
use MailPoet\Newsletter\Shortcodes\Shortcodes;
|
||||||
@@ -352,7 +351,6 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
$shortcodesObject = $this->shortcodesObject;
|
$shortcodesObject = $this->shortcodesObject;
|
||||||
$shortcodesObject->setWpUserPreview(true);
|
$shortcodesObject->setWpUserPreview(true);
|
||||||
$shortcodesObject->setSubscriber(null);
|
$shortcodesObject->setSubscriber(null);
|
||||||
$newsletterModel = NewsletterModel::where('id', $this->newsletter->getId())->findOne();
|
|
||||||
$shortcodes = [
|
$shortcodes = [
|
||||||
'[link:subscription_unsubscribe_url]',
|
'[link:subscription_unsubscribe_url]',
|
||||||
'[link:subscription_instant_unsubscribe_url]',
|
'[link:subscription_instant_unsubscribe_url]',
|
||||||
@@ -363,7 +361,7 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
$this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null),
|
$this->subscriptionUrlFactory->getConfirmUnsubscribeUrl(null),
|
||||||
$this->subscriptionUrlFactory->getUnsubscribeUrl(null),
|
$this->subscriptionUrlFactory->getUnsubscribeUrl(null),
|
||||||
$this->subscriptionUrlFactory->getManageUrl(null),
|
$this->subscriptionUrlFactory->getManageUrl(null),
|
||||||
$this->newsletterUrl->getViewInBrowserUrl($newsletterModel),
|
$this->newsletterUrl->getViewInBrowserUrl($this->newsletter),
|
||||||
];
|
];
|
||||||
$result = $shortcodesObject->process($shortcodes);
|
$result = $shortcodesObject->process($shortcodes);
|
||||||
// hash is returned
|
// hash is returned
|
||||||
|
Reference in New Issue
Block a user