Skip to content

Commit

Permalink
Set email = id on phone migration rollback case if firebase update re…
Browse files Browse the repository at this point in the history
…turns an error. (#100)

Set email = id on phone migration rollback case if firebase update
returns an error.
  • Loading branch information
ice-myles authored Jan 15, 2024
1 parent 504eaa9 commit 1365592
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions auth/email_link/email_modify.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
"github.com/ice-blockchain/wintr/time"
)

//nolint:funlen // Big rollback logic.
//nolint:funlen,gocognit,nestif,revive // Big rollback logic.
func (c *client) handleEmailModification(ctx context.Context, els *emailLinkSignIn, newEmail, oldEmail, notifyEmail string) error {
usr := new(users.User)
usr.ID = *els.UserID
Expand All @@ -28,8 +28,13 @@ func (c *client) handleEmailModification(ctx context.Context, els *emailLinkSign
if els.Metadata != nil {
if firebaseID, hasFirebaseID := (*els.Metadata)[auth.FirebaseIDClaim]; hasFirebaseID {
if fErr := server.Auth(ctx).UpdateEmail(ctx, firebaseID.(string), newEmail); fErr != nil { //nolint:forcetypeassert // .
oldEmailVal := oldEmail
if els.PhoneNumberToEmailMigrationUserID != nil && *els.PhoneNumberToEmailMigrationUserID != "" {
oldEmailVal = usr.ID
}

return multierror.Append( //nolint:wrapcheck // .
errors.Wrapf(c.resetEmailModification(ctx, usr.ID, oldEmail), "[reset] resetEmailModification failed for email:%v", oldEmail),
errors.Wrapf(c.resetEmailModification(ctx, usr.ID, oldEmailVal), "[reset] resetEmailModification failed for email:%v", oldEmailVal),
errors.Wrapf(fErr, "failed to change email in firebase to:%v fbUserID:%v", newEmail, firebaseID),
).ErrorOrNil()
}
Expand Down

0 comments on commit 1365592

Please sign in to comment.