refac: hardening pass with multiple overhauls
This commit is contained in:
1 parent
b0f7b7892b
commit
da36c78bc0
28 files changed
+1375
-39
No files matched your search
@@ -34,6 +34,9 @@ func (a *AcceptInviteUseCase) AcceptInvite(command AcceptInviteCommand) (user.Us
|
||||
}
|
||||
|
||||
if a.emailHasAccount(pending.Email) {
|
||||
if _, err := findUsableInvite(a.inviteRepository, a.hasher, command.Code, now); err != nil {
|
||||
return user.User{}, err
|
||||
}
|
||||
return user.User{}, invite.ErrEmailHasAccount
|
||||
}
|
||||
|
||||
@@ -46,20 +49,16 @@ func (a *AcceptInviteUseCase) AcceptInvite(command AcceptInviteCommand) (user.Us
|
||||
return user.User{}, err
|
||||
}
|
||||
|
||||
createdUser, err := a.userRepository.Create(user.User{
|
||||
createdUser, err := a.inviteRepository.AcceptWithUser(pending.ID, now, user.User{
|
||||
Username: command.Username,
|
||||
Password: hashedPassword,
|
||||
Email: pending.Email,
|
||||
IsVerified: true,
|
||||
})
|
||||
if err != nil {
|
||||
return user.User{}, err
|
||||
if errors.Is(err, invite.ErrInviteNotFound) {
|
||||
return user.User{}, invite.ErrInviteInvalid
|
||||
}
|
||||
|
||||
if err := a.inviteRepository.MarkAccepted(pending.ID, now); err != nil {
|
||||
if deleteErr := a.userRepository.Delete(createdUser.ID); deleteErr != nil {
|
||||
return user.User{}, errors.Join(err, deleteErr)
|
||||
}
|
||||
if err != nil {
|
||||
return user.User{}, err
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user