Remove mailpoet_data use from send email preview feature

MAILPOET-6431
This commit is contained in:
Oluwaseun Olorunsola
2025-01-30 13:54:07 +01:00
committed by Oluwaseun Olorunsola
parent 27b66e9dc9
commit 43990d9e8b
4 changed files with 6 additions and 26 deletions

View File

@ -35,7 +35,7 @@ class EmailEditorPreviewEmail {
} }
private function validateData($data) { private function validateData($data) {
if (empty($data['email']) || empty($data['postId']) || empty($data['newsletterId'])) { if (empty($data['email']) || empty($data['postId'])) {
throw new \InvalidArgumentException(esc_html__('Missing required data', 'mailpoet')); throw new \InvalidArgumentException(esc_html__('Missing required data', 'mailpoet'));
} }
@ -50,9 +50,9 @@ class EmailEditorPreviewEmail {
* @throws \Exception * @throws \Exception
*/ */
private function fetchNewsletter($postData): NewsletterEntity { private function fetchNewsletter($postData): NewsletterEntity {
$newsletter = $this->newslettersRepository->findOneById((int)$postData['newsletterId']); $newsletter = $this->newslettersRepository->findOneBy(['wpPost' => (int)$postData['postId']]);
if (!$newsletter) { if (!$newsletter instanceof NewsletterEntity) {
throw new \Exception(esc_html__('This email does not exist.', 'mailpoet')); throw new \Exception(esc_html__('This email does not exist.', 'mailpoet'));
} }

View File

@ -13,17 +13,11 @@ import {
} from '@wordpress/element'; } from '@wordpress/element';
import { ENTER } from '@wordpress/keycodes'; import { ENTER } from '@wordpress/keycodes';
import { isEmail } from '@wordpress/url'; import { isEmail } from '@wordpress/url';
import { useEntityProp } from '@wordpress/core-data';
/** /**
* Internal dependencies * Internal dependencies
*/ */
import { import { SendingPreviewStatus, storeName } from '../../store';
MailPoetEmailData,
SendingPreviewStatus,
storeName,
editorCurrentPostType,
} from '../../store';
import { recordEvent, recordEventOnce } from '../../events'; import { recordEvent, recordEventOnce } from '../../events';
function RawSendPreviewEmail() { function RawSendPreviewEmail() {
@ -42,17 +36,8 @@ function RawSendPreviewEmail() {
isModalOpened, isModalOpened,
} = useSelect( ( select ) => select( storeName ).getPreviewState(), [] ); } = useSelect( ( select ) => select( storeName ).getPreviewState(), [] );
const [ mailpoetEmailData ] = useEntityProp(
'postType',
editorCurrentPostType,
'mailpoet_data'
) as [ MailPoetEmailData, unknown, unknown ];
const handleSendPreviewEmail = () => { const handleSendPreviewEmail = () => {
void requestSendingNewsletterPreview( void requestSendingNewsletterPreview( previewToEmail );
mailpoetEmailData.id,
previewToEmail
);
}; };
const closeCallback = () => { const closeCallback = () => {

View File

@ -168,10 +168,7 @@ export const setTemplateToPost =
} ); } );
}; };
export function* requestSendingNewsletterPreview( export function* requestSendingNewsletterPreview( email: string ) {
newsletterId: number,
email: string
) {
// If preview is already sending do nothing // If preview is already sending do nothing
const previewState = select( storeName ).getPreviewState(); const previewState = select( storeName ).getPreviewState();
if ( previewState.isSendingPreviewEmail ) { if ( previewState.isSendingPreviewEmail ) {
@ -192,7 +189,6 @@ export function* requestSendingNewsletterPreview(
path: '/mailpoet-email-editor/v1/send_preview_email', path: '/mailpoet-email-editor/v1/send_preview_email',
method: 'POST', method: 'POST',
data: { data: {
newsletterId,
email, email,
postId, postId,
}, },

View File

@ -66,7 +66,6 @@ class Email_Api_Controller {
* $data - Post Data * $data - Post Data
* format * format
* [_locale] => user * [_locale] => user
* [newsletterId] => NEWSLETTER_ID
* [email] => Provided email address * [email] => Provided email address
* [postId] => POST_ID * [postId] => POST_ID
*/ */