2018-01-23 13:31:54 +00:00
|
|
|
package models
|
|
|
|
|
|
|
|
import "fmt"
|
|
|
|
|
2018-01-23 13:52:03 +00:00
|
|
|
// =====================
|
|
|
|
// User Operation Errors
|
|
|
|
// =====================
|
|
|
|
|
2018-01-23 13:31:54 +00:00
|
|
|
// ErrUsernameExists represents a "UsernameAlreadyExists" kind of error.
|
|
|
|
type ErrUsernameExists struct {
|
2018-01-23 13:32:23 +00:00
|
|
|
UserID int64
|
2018-01-23 13:31:54 +00:00
|
|
|
Username string
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsErrUsernameExists checks if an error is a ErrUsernameExists.
|
|
|
|
func IsErrUsernameExists(err error) bool {
|
|
|
|
_, ok := err.(ErrUsernameExists)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUsernameExists) Error() string {
|
|
|
|
return fmt.Sprintf("a user with this username does already exist [user id: %d, username: %s]", err.UserID, err.Username)
|
2018-01-23 13:32:23 +00:00
|
|
|
}
|
2018-01-23 13:52:03 +00:00
|
|
|
|
|
|
|
// ErrNoUsername represents a "UsernameAlreadyExists" kind of error.
|
|
|
|
type ErrNoUsername struct {
|
|
|
|
UserID int64
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsErrNoUsername checks if an error is a ErrUsernameExists.
|
|
|
|
func IsErrNoUsername(err error) bool {
|
|
|
|
_, ok := err.(ErrNoUsername)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrNoUsername) Error() string {
|
|
|
|
return fmt.Sprintf("you need to specify a username [user id: %d]", err.UserID)
|
|
|
|
}
|
2018-01-23 14:19:39 +00:00
|
|
|
|
|
|
|
// ErrUserDoesNotExist represents a "UsernameAlreadyExists" kind of error.
|
|
|
|
type ErrUserDoesNotExist struct {
|
|
|
|
UserID int64
|
|
|
|
}
|
|
|
|
|
|
|
|
// IsErrNoUsername checks if an error is a ErrUsernameExists.
|
|
|
|
func IsErrUserDoesNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrUserDoesNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUserDoesNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("this user does not exist [user id: %d]", err.UserID)
|
|
|
|
}
|