|
|
@@ -2,6 +2,7 @@
|
|
|
import {
|
|
|
AccountRegistrationEvent,
|
|
|
IdentifierChangeRequestEvent,
|
|
|
+ NativeAuthenticationMethod,
|
|
|
OrderStateTransitionEvent,
|
|
|
PasswordResetEvent,
|
|
|
} from '@vendure/core';
|
|
|
@@ -17,39 +18,46 @@ import {
|
|
|
|
|
|
export const orderConfirmationHandler = new EmailEventListener('order-confirmation')
|
|
|
.on(OrderStateTransitionEvent)
|
|
|
- .filter((event) => event.toState === 'PaymentSettled' && !!event.order.customer)
|
|
|
- .setRecipient((event) => event.order.customer!.emailAddress)
|
|
|
+ .filter(event => event.toState === 'PaymentSettled' && !!event.order.customer)
|
|
|
+ .setRecipient(event => event.order.customer!.emailAddress)
|
|
|
.setFrom(`{{ fromAddress }}`)
|
|
|
.setSubject(`Order confirmation for #{{ order.code }}`)
|
|
|
- .setTemplateVars((event) => ({ order: event.order }))
|
|
|
+ .setTemplateVars(event => ({ order: event.order }))
|
|
|
.setMockEvent(mockOrderStateTransitionEvent);
|
|
|
|
|
|
export const emailVerificationHandler = new EmailEventListener('email-verification')
|
|
|
.on(AccountRegistrationEvent)
|
|
|
- .setRecipient((event) => event.user.identifier)
|
|
|
+ .filter(event => !!event.user.getNativeAuthenticationMethod().identifier)
|
|
|
+ .filter(event => {
|
|
|
+ const nativeAuthMethod = event.user.authenticationMethods.find(
|
|
|
+ m => m instanceof NativeAuthenticationMethod,
|
|
|
+ ) as NativeAuthenticationMethod | undefined;
|
|
|
+ return (nativeAuthMethod && !!nativeAuthMethod.identifier) || false;
|
|
|
+ })
|
|
|
+ .setRecipient(event => event.user.identifier)
|
|
|
.setFrom(`{{ fromAddress }}`)
|
|
|
.setSubject(`Please verify your email address`)
|
|
|
- .setTemplateVars((event) => ({
|
|
|
+ .setTemplateVars(event => ({
|
|
|
verificationToken: event.user.getNativeAuthenticationMethod().verificationToken,
|
|
|
}))
|
|
|
.setMockEvent(mockAccountRegistrationEvent);
|
|
|
|
|
|
export const passwordResetHandler = new EmailEventListener('password-reset')
|
|
|
.on(PasswordResetEvent)
|
|
|
- .setRecipient((event) => event.user.identifier)
|
|
|
+ .setRecipient(event => event.user.identifier)
|
|
|
.setFrom(`{{ fromAddress }}`)
|
|
|
.setSubject(`Forgotten password reset`)
|
|
|
- .setTemplateVars((event) => ({
|
|
|
+ .setTemplateVars(event => ({
|
|
|
passwordResetToken: event.user.getNativeAuthenticationMethod().passwordResetToken,
|
|
|
}))
|
|
|
.setMockEvent(mockPasswordResetEvent);
|
|
|
|
|
|
export const emailAddressChangeHandler = new EmailEventListener('email-address-change')
|
|
|
.on(IdentifierChangeRequestEvent)
|
|
|
- .setRecipient((event) => event.user.getNativeAuthenticationMethod().pendingIdentifier!)
|
|
|
+ .setRecipient(event => event.user.getNativeAuthenticationMethod().pendingIdentifier!)
|
|
|
.setFrom(`{{ fromAddress }}`)
|
|
|
.setSubject(`Please verify your change of email address`)
|
|
|
- .setTemplateVars((event) => ({
|
|
|
+ .setTemplateVars(event => ({
|
|
|
identifierChangeToken: event.user.getNativeAuthenticationMethod().identifierChangeToken,
|
|
|
}))
|
|
|
.setMockEvent(mockEmailAddressChangeEvent);
|