194 lines
5.6 KiB
Go
194 lines
5.6 KiB
Go
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}
|
|
}
|