package pwreset import ( "errors" "fmt" ) //ErrVerifyPasswordFailed occurs when the given password does not match the given password verification var ErrVerifyPasswordFailed = errors.New("password verify failed") //ErrInvalidPassword occurs when the given password does not match a restriction regex var ErrInvalidPassword = errors.New("invalid password") //ErrUserFetchFailed wraps a repository error type ErrUserFetchFailed struct { user string original error } //Error returns error message func (e ErrUserFetchFailed) Error() string { return fmt.Sprintf("failed to retrieve user '%s': %s", e.user, e.original.Error()) } //NewErrUserFetchFailed wraps a repository error func NewErrUserFetchFailed(user string, original error) error { return &ErrUserFetchFailed{user, original} } //ErrUserNotFound occurs when no user by given userName is found type ErrUserNotFound struct { user string } //Error returns error message func (e ErrUserNotFound) Error() string { return fmt.Sprintf("user '%s' not found", e.user) } //NewErrUserNotFound occurs when no user by given userName is found func NewErrUserNotFound(userName string) error { return &ErrUserNotFound{userName} } //ErrUserEmailInvalid occurs when email is invalid type ErrUserEmailInvalid struct { user string email string } //Error returns error message func (e ErrUserEmailInvalid) Error() string { return fmt.Sprintf("email '%s' of user '%s' is invalid", e.email, e.user) } //NewErrUserEmailInvalid occurs when a user has an invalid email address. func NewErrUserEmailInvalid(user, email string) error { return &ErrUserEmailInvalid{user, email} } //ErrUserEmailAddressEmpty occurs when a user email is an empty string or not set. type ErrUserEmailAddressEmpty struct { user string } //Error returns error message func (e ErrUserEmailAddressEmpty) Error() string { return fmt.Sprintf("user '%s' has empty email", e.user) } //NewErrUserEmailAddressEmpty occurs when a user email is an empty string or not set. func NewErrUserEmailAddressEmpty(user string) error { return &ErrUserEmailAddressEmpty{user} } //ErrFailedToCreateResetCode wraps a code repository error. type ErrFailedToCreateResetCode struct { user string uuid string original error } //Error returns error message func (e ErrFailedToCreateResetCode) Error() string { return fmt.Sprintf("failed to create password reset code for user '%s' using uuid '%s': %s", e.user, e.uuid, e.original.Error()) } //NewErrFailedToCreateResetCode wraps a code repository error. func NewErrFailedToCreateResetCode(user, uuid string, original error) error { return &ErrFailedToCreateResetCode{user, uuid, original} } //ErrFailedToGetResetCode wraps a code repository error. type ErrFailedToGetResetCode struct { user string original error } //Error returns error message func (e ErrFailedToGetResetCode) Error() string { return fmt.Sprintf("failed to get password reset code for user '%s': %s", e.user, e.original.Error()) } //NewErrFailedToGetResetCode wraps a code repository error. func NewErrFailedToGetResetCode(user string, original error) error { return &ErrFailedToGetResetCode{user, original} } //ErrResetCodeNotFound wraps a code repository error. type ErrResetCodeNotFound struct { user string } //Error returns error message func (e ErrResetCodeNotFound) Error() string { return fmt.Sprintf("no password reset code found for user '%s'", e.user) } //NewErrResetCodeNotFound wraps a code repository error. func NewErrResetCodeNotFound(user string) error { return &ErrResetCodeNotFound{user} } //ErrFailedToSendEmail wraps email sender error. type ErrFailedToSendEmail struct { user string email string original error } //Error returns error message func (e ErrFailedToSendEmail) Error() string { return fmt.Sprintf("failed to send password reset code to email '%s' for user '%s': %s", e.email, e.user, e.original.Error()) } //NewErrFailedToSendEmail wraps email sender error. func NewErrFailedToSendEmail(user, email string, original error) error { return &ErrFailedToSendEmail{user, email, original} } //ErrInvalidResetCode occurs when the given resetcode does not equal the stored reset code type ErrInvalidResetCode struct { user string resetCode string } //Error returns error message func (e ErrInvalidResetCode) Error() string { return fmt.Sprintf("invalid password reset code '%s' for user '%s'", e.resetCode, e.user) } //NewErrInvalidResetCode occurs when the given resetcode does not equal the stored reset code func NewErrInvalidResetCode(user, resetCode string) error { return &ErrInvalidResetCode{user, resetCode} } //ErrDeleteResetCodeFailed occurs when the repository failed at deleting a reset code type ErrDeleteResetCodeFailed struct { user string original error } //Error returns error message func (e ErrDeleteResetCodeFailed) Error() string { return fmt.Sprintf("failed to delete password reset code for user '%s': %s", e.user, e.original.Error()) } //NewErrDeleteResetCodeFailed occurs when the repository failed at deleting a reset code func NewErrDeleteResetCodeFailed(user string, original error) error { return &ErrDeleteResetCodeFailed{user, original} } //ErrChangePasswordFailed occurs when the repository failed at deleting a reset code type ErrChangePasswordFailed struct { user string original error } //Error returns error message func (e ErrChangePasswordFailed) Error() string { return fmt.Sprintf("failed to change password for user '%s': %s", e.user, e.original.Error()) } //NewErrChangePasswordFailed occurs when the repository failed at deleting a reset code func NewErrChangePasswordFailed(user string, original error) error { return &ErrChangePasswordFailed{user, original} }