Skip to content

Commit

Permalink
Merge pull request #746 from magiclabs/PDEEXP-1279-done-event-not-fir…
Browse files Browse the repository at this point in the history
…ing-in-whitelabel-email-login-flow

Add two more events for EmailOTP
  • Loading branch information
Ethella committed Jun 6, 2024
2 parents 78b723f + 027fd94 commit 852ded9
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 66 deletions.
140 changes: 74 additions & 66 deletions packages/@magic-sdk/types/src/modules/auth-types.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { WalletEventOnReceived } from './wallet-types';

export interface LoginWithMagicLinkConfiguration {
/**
* The email address of the user attempting to login.
Expand Down Expand Up @@ -74,40 +76,6 @@ export interface LoginWithEmailOTPConfiguration {
};
}

/**
* EventHandlers
*/
export type LoginWithMagicLinkEventHandlers = {
// Event Received
[LoginWithMagicLinkEventOnReceived.EmailSent]: () => void;
[LoginWithMagicLinkEventOnReceived.EmailNotDeliverable]: () => void;

// Event sent
[LoginWithMagicLinkEventEmit.Retry]: () => void;
} & DeviceVerificationEventHandlers;

export type LoginWithEmailOTPEventHandlers = {
// Event Received
[LoginWithEmailOTPEventOnReceived.EmailOTPSent]: () => void;
[LoginWithEmailOTPEventOnReceived.InvalidEmailOtp]: () => void;
[LoginWithEmailOTPEventOnReceived.ExpiredEmailOtp]: () => void;

// Event sent
[LoginWithEmailOTPEventEmit.VerifyEmailOtp]: (otp: string) => void;
[LoginWithEmailOTPEventEmit.Cancel]: () => void;
} & DeviceVerificationEventHandlers;

type DeviceVerificationEventHandlers = {
// Event Received
[DeviceVerificationEventOnReceived.DeviceNeedsApproval]: () => void;
[DeviceVerificationEventOnReceived.DeviceVerificationEmailSent]: () => void;
[DeviceVerificationEventOnReceived.DeviceVerificationLinkExpired]: () => void;
[DeviceVerificationEventOnReceived.DeviceApproved]: () => void;

// Event sent
[DeviceVerificationEventEmit.Retry]: () => void;
};

/**
* Auth Events Enum
*/
Expand Down Expand Up @@ -142,38 +110,6 @@ export enum DeviceVerificationEventOnReceived {
DeviceVerificationEmailSent = 'device-verification-email-sent',
}

/**
* Update Email
*/

type RecencyCheckEventHandlers = {
[RecencyCheckEventOnReceived.PrimaryAuthFactorNeedsVerification]: () => void;
[RecencyCheckEventOnReceived.PrimaryAuthFactorVerified]: () => void;
[RecencyCheckEventOnReceived.InvalidEmailOtp]: () => void;
[RecencyCheckEventOnReceived.EmailNotDeliverable]: () => void;
[RecencyCheckEventOnReceived.EmailExpired]: () => void;
[RecencyCheckEventOnReceived.EmailSent]: () => void;

[RecencyCheckEventEmit.Cancel]: () => void;
[RecencyCheckEventEmit.Retry]: () => void;
[RecencyCheckEventEmit.VerifyEmailOtp]: (otp: string) => void;
};

export type UpdateEmailEventHandlers = {
[UpdateEmailEventOnReceived.NewAuthFactorNeedsVerification]: () => void;
[UpdateEmailEventOnReceived.EmailUpdated]: () => void;
[UpdateEmailEventOnReceived.InvalidEmailOtp]: () => void;
[UpdateEmailEventOnReceived.EmailNotDeliverable]: () => void;
[UpdateEmailEventOnReceived.EmailExpired]: () => void;
[UpdateEmailEventOnReceived.EmailSent]: () => void;
[UpdateEmailEventOnReceived.InvalidEmail]: () => void;
[UpdateEmailEventOnReceived.EmailAlreadyExists]: () => void;

[UpdateEmailEventEmit.Cancel]: () => void;
[UpdateEmailEventEmit.RetryWithNewEmail]: (email?: string) => void;
[UpdateEmailEventEmit.VerifyEmailOtp]: (otp: string) => void;
} & RecencyCheckEventHandlers;

export enum RecencyCheckEventEmit {
Retry = 'Recency/auth-factor-retry',
Cancel = 'Recency/auth-factor-verification-cancel',
Expand Down Expand Up @@ -205,3 +141,75 @@ export enum UpdateEmailEventOnReceived {
InvalidEmail = 'UpdateEmail/new-email-invalid',
EmailAlreadyExists = 'UpdateEmail/new-email-already-exists',
}

export enum AuthEventOnReceived {
IDTokenCreated = 'Auth/id-token-created',
}

/**
* EventHandlers
*/
export type LoginWithMagicLinkEventHandlers = {
// Event Received
[LoginWithMagicLinkEventOnReceived.EmailSent]: () => void;
[LoginWithMagicLinkEventOnReceived.EmailNotDeliverable]: () => void;

// Event sent
[LoginWithMagicLinkEventEmit.Retry]: () => void;
} & DeviceVerificationEventHandlers;

export type LoginWithEmailOTPEventHandlers = {
// Event Received
[LoginWithEmailOTPEventOnReceived.EmailOTPSent]: () => void;
[LoginWithEmailOTPEventOnReceived.InvalidEmailOtp]: () => void;
[LoginWithEmailOTPEventOnReceived.ExpiredEmailOtp]: () => void;
[AuthEventOnReceived.IDTokenCreated]: (idToken: string) => void;
[WalletEventOnReceived.WalletInfoFetched]: () => void;

// Event sent
[LoginWithEmailOTPEventEmit.VerifyEmailOtp]: (otp: string) => void;
[LoginWithEmailOTPEventEmit.Cancel]: () => void;
} & DeviceVerificationEventHandlers;

type DeviceVerificationEventHandlers = {
// Event Received
[DeviceVerificationEventOnReceived.DeviceNeedsApproval]: () => void;
[DeviceVerificationEventOnReceived.DeviceVerificationEmailSent]: () => void;
[DeviceVerificationEventOnReceived.DeviceVerificationLinkExpired]: () => void;
[DeviceVerificationEventOnReceived.DeviceApproved]: () => void;

// Event sent
[DeviceVerificationEventEmit.Retry]: () => void;
};

/**
* Update Email
*/

type RecencyCheckEventHandlers = {
[RecencyCheckEventOnReceived.PrimaryAuthFactorNeedsVerification]: () => void;
[RecencyCheckEventOnReceived.PrimaryAuthFactorVerified]: () => void;
[RecencyCheckEventOnReceived.InvalidEmailOtp]: () => void;
[RecencyCheckEventOnReceived.EmailNotDeliverable]: () => void;
[RecencyCheckEventOnReceived.EmailExpired]: () => void;
[RecencyCheckEventOnReceived.EmailSent]: () => void;

[RecencyCheckEventEmit.Cancel]: () => void;
[RecencyCheckEventEmit.Retry]: () => void;
[RecencyCheckEventEmit.VerifyEmailOtp]: (otp: string) => void;
};

export type UpdateEmailEventHandlers = {
[UpdateEmailEventOnReceived.NewAuthFactorNeedsVerification]: () => void;
[UpdateEmailEventOnReceived.EmailUpdated]: () => void;
[UpdateEmailEventOnReceived.InvalidEmailOtp]: () => void;
[UpdateEmailEventOnReceived.EmailNotDeliverable]: () => void;
[UpdateEmailEventOnReceived.EmailExpired]: () => void;
[UpdateEmailEventOnReceived.EmailSent]: () => void;
[UpdateEmailEventOnReceived.InvalidEmail]: () => void;
[UpdateEmailEventOnReceived.EmailAlreadyExists]: () => void;

[UpdateEmailEventEmit.Cancel]: () => void;
[UpdateEmailEventEmit.RetryWithNewEmail]: (email?: string) => void;
[UpdateEmailEventEmit.VerifyEmailOtp]: (otp: string) => void;
} & RecencyCheckEventHandlers;
4 changes: 4 additions & 0 deletions packages/@magic-sdk/types/src/modules/wallet-types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,7 @@ export interface GaslessTransactionRequest {
*/
customData?: any;
}

export enum WalletEventOnReceived {
WalletInfoFetched = 'Wallet/wallet-info-fetched',
}

0 comments on commit 852ded9

Please sign in to comment.