Use private method for building view-in-browser URL
[MAILPOET-2646]
This commit is contained in:
@ -10,6 +10,7 @@ use MailPoet\Config\AccessControl;
|
|||||||
use MailPoet\Cron\CronHelper;
|
use MailPoet\Cron\CronHelper;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterQueueTask;
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Listing;
|
use MailPoet\Listing;
|
||||||
use MailPoet\Mailer\Mailer as MailerFactory;
|
use MailPoet\Mailer\Mailer as MailerFactory;
|
||||||
use MailPoet\Mailer\MetaInfo;
|
use MailPoet\Mailer\MetaInfo;
|
||||||
@ -125,15 +126,9 @@ class Newsletters extends APIEndpoint {
|
|||||||
NewslettersResponseBuilder::RELATION_OPTIONS,
|
NewslettersResponseBuilder::RELATION_OPTIONS,
|
||||||
NewslettersResponseBuilder::RELATION_QUEUE,
|
NewslettersResponseBuilder::RELATION_QUEUE,
|
||||||
]);
|
]);
|
||||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
|
||||||
(object)[
|
|
||||||
'id' => $newsletter->getId(),
|
|
||||||
'hash' => $newsletter->getHash(),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
|
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
|
||||||
return $this->successResponse($response, ['preview_url' => $previewUrl]);
|
return $this->successResponse($response, ['preview_url' => $this->getViewInBrowserUrl($newsletter)]);
|
||||||
} else {
|
} else {
|
||||||
return $this->errorResponse([
|
return $this->errorResponse([
|
||||||
APIError::NOT_FOUND => __('This email does not exist.', 'mailpoet'),
|
APIError::NOT_FOUND => __('This email does not exist.', 'mailpoet'),
|
||||||
@ -154,12 +149,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
NewslettersResponseBuilder::RELATION_STATISTICS,
|
NewslettersResponseBuilder::RELATION_STATISTICS,
|
||||||
]);
|
]);
|
||||||
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
|
$response = $this->wp->applyFilters('mailpoet_api_newsletters_get_after', $response);
|
||||||
$response['preview_url'] = NewsletterUrl::getViewInBrowserUrl(
|
$response['preview_url'] = $this->getViewInBrowserUrl($newsletter);
|
||||||
(object)[
|
|
||||||
'id' => $newsletter->getId(),
|
|
||||||
'hash' => $newsletter->getHash(),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
return $this->successResponse($response);
|
return $this->successResponse($response);
|
||||||
} else {
|
} else {
|
||||||
return $this->errorResponse([
|
return $this->errorResponse([
|
||||||
@ -442,16 +432,7 @@ class Newsletters extends APIEndpoint {
|
|||||||
$this->newslettersRepository->flush();
|
$this->newslettersRepository->flush();
|
||||||
|
|
||||||
$response = $this->newslettersResponseBuilder->build($newsletter);
|
$response = $this->newslettersResponseBuilder->build($newsletter);
|
||||||
$previewUrl = NewsletterUrl::getViewInBrowserUrl(
|
return $this->successResponse($response, ['preview_url' => $this->getViewInBrowserUrl($newsletter)]);
|
||||||
(object)[
|
|
||||||
'id' => $newsletter->getId(),
|
|
||||||
'hash' => $newsletter->getHash(),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
// strip protocol to avoid mix content error
|
|
||||||
$previewUrl = preg_replace('{^https?:}i', '', $previewUrl);
|
|
||||||
return $this->successResponse($response, ['preview_url' => $previewUrl]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendPreview($data = []) {
|
public function sendPreview($data = []) {
|
||||||
@ -634,4 +615,16 @@ class Newsletters extends APIEndpoint {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getViewInBrowserUrl(NewsletterEntity $newsletter): string {
|
||||||
|
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||||
|
(object)[
|
||||||
|
'id' => $newsletter->getId(),
|
||||||
|
'hash' => $newsletter->getHash(),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// strip protocol to avoid mix content error
|
||||||
|
return preg_replace('/^https?:/i', '', $url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user