Remove 'type' parameter for view-in-browser, always include hash

[MAILPOET-2430]
This commit is contained in:
Jan Jakeš
2020-02-04 15:54:06 +01:00
committed by Jack Kitterhing
parent eb1c7673e3
commit e5fcf5819d
9 changed files with 6 additions and 47 deletions

View File

@ -124,7 +124,6 @@ class Newsletters extends APIEndpoint {
NewslettersResponseBuilder::RELATION_QUEUE,
]);
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),
@ -155,7 +154,6 @@ class Newsletters extends APIEndpoint {
]);
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
$response['preview_url'] = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
(object)[
'id' => $newsletter->getId(),
'hash' => $newsletter->getHash(),
@ -283,12 +281,7 @@ class Newsletters extends APIEndpoint {
$this->wp->doAction('mailpoet_api_newsletters_save_after', $newsletter);
$this->authorizedEmailsController->onNewsletterUpdate($newsletter, $oldNewsletter);
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
$newsletter,
Subscriber::getCurrentWPUser()
);
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, Subscriber::getCurrentWPUser());
return $this->successResponse($newsletter->asArray(), ['preview_url' => $previewUrl]);
}
@ -441,11 +434,7 @@ class Newsletters extends APIEndpoint {
$newsletter->body = $this->emoji->encodeForUTF8Column(MP_NEWSLETTERS_TABLE, 'body', $newsletter->body);
$newsletter->save();
$subscriber = Subscriber::getCurrentWPUser();
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
$newsletter,
$subscriber
);
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber);
$publicPreviewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter);
// strip protocol to avoid mix content error
$previewUrl = preg_replace('{^https?:}i', '', $previewUrl);
@ -575,12 +564,7 @@ class Newsletters extends APIEndpoint {
}
// get preview url
$newsletter->previewUrl = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
$newsletter,
$subscriber = null,
$queue
);
$newsletter->previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber = null, $queue);
$data[] = $this->wp->applyFilters('mailpoet_api_newsletters_listing_item', $newsletter->asArray());
}

View File

@ -132,12 +132,7 @@ class Shortcodes {
}
public function renderArchiveSubject($newsletter, $subscriber, $queue) {
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_ARCHIVE,
$newsletter,
$subscriber,
$queue
);
$previewUrl = NewsletterUrl::getViewInBrowserUrl($newsletter, $subscriber, $queue);
return '<a href="' . esc_attr($previewUrl) . '" target="_blank" title="'
. esc_attr(__('Preview in a new tab', 'mailpoet')) . '">'
. esc_attr($newsletter->newsletterRenderedSubject) .

View File

@ -39,7 +39,6 @@ class Link {
case 'newsletter_view_in_browser_url':
$url = NewsletterUrl::getViewInBrowserUrl(
$type = null,
$newsletter,
$wpUserPreview ? false : $subscriber,
$queue,
@ -90,7 +89,6 @@ class Link {
break;
case 'newsletter_view_in_browser_url':
$url = NewsletterUrl::getViewInBrowserUrl(
$type = null,
$newsletter,
$subscriber,
$queue,

View File

@ -8,11 +8,7 @@ use MailPoet\Router\Router;
use MailPoet\Subscribers\LinkTokens;
class Url {
const TYPE_ARCHIVE = 'display_archive';
const TYPE_LISTING_EDITOR = 'display_listing_editor';
public static function getViewInBrowserUrl(
$type,
$newsletter,
$subscriber = false,
$queue = false,
@ -22,16 +18,6 @@ class Url {
if ($subscriber instanceof SubscriberModel) {
$subscriber->token = $linkTokens->getToken($subscriber);
}
switch ($type) {
case self::TYPE_ARCHIVE:
// do not expose newsletter id when displaying archive newsletters
$newsletter->id = null;
break;
default:
// hide hash for all other display types
$newsletter->hash = null;
break;
}
$data = self::createUrlDataObject($newsletter, $subscriber, $queue, $preview);
return Router::buildRequest(
ViewInBrowserEndpoint::ENDPOINT,

View File

@ -68,7 +68,6 @@ class NewslettersExporter {
$newsletterData[] = [
'name' => WPFunctions::get()->__('Email preview', 'mailpoet'),
'value' => Url::getViewInBrowserUrl(
'',
$newsletters[$statisticsRow['newsletter_id']],
$subscriber,
false

View File

@ -91,7 +91,6 @@ class State
'queue_id' => (int)$queue->id,
'subject' => $queue->newsletterRenderedSubject ?: $newsletter->subject,
'preview_url' => NewsletterUrl::getViewInBrowserUrl(
NewsletterUrl::TYPE_LISTING_EDITOR,
$newsletter,
null,
$queue

View File

@ -873,7 +873,7 @@ class NewslettersTest extends \MailPoetTest {
'send' => function ($newsletter, $subscriber, $extraParams) {
$unsubscribeLink = $this->subscriptionUrlFactory->getUnsubscribeUrl(null);
$manageLink = $this->subscriptionUrlFactory->getManageUrl(null);
$viewInBrowserLink = Url::getViewInBrowserUrl(null, $this->newsletter, false, false);
$viewInBrowserLink = Url::getViewInBrowserUrl($this->newsletter, false, false);
$mailerMetaInfo = new MetaInfo;
expect(is_array($newsletter))->true();

View File

@ -52,13 +52,11 @@ class ShortcodesTest extends \MailPoetTest {
/** @var string $link */
$link = $link->attr('href');
expect($link)->contains('endpoint=view_in_browser');
// request data object contains newsletter hash but not newsletter id
$parsedLink = parse_url($link, PHP_URL_QUERY);
parse_str(html_entity_decode((string)$parsedLink), $data);
$requestData = Url::transformUrlDataObject(
Router::decodeRequestData($data['data'])
);
expect($requestData['newsletter_id'])->isEmpty();
expect($requestData['newsletter_hash'])->equals($this->newsletter->hash);
}

View File

@ -309,7 +309,7 @@ class ShortcodesTest extends \MailPoetTest {
$links = [
$this->subscriptionUrlFactory->getUnsubscribeUrl(null),
$this->subscriptionUrlFactory->getManageUrl(null),
NewsletterUrl::getViewInBrowserUrl(null, $this->newsletter, false, false),
NewsletterUrl::getViewInBrowserUrl($this->newsletter, false, false),
];
$result = $shortcodesObject->process($shortcodes);
// hash is returned