archive
This commit is contained in:
48
MovieNight/scrapedagain/main/errors.go
Executable file
48
MovieNight/scrapedagain/main/errors.go
Executable file
@@ -0,0 +1,48 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func errorName(err error) string {
|
||||
return reflect.ValueOf(err).Type().Name()
|
||||
}
|
||||
|
||||
// UserNameError is a base error for errors that deal with user names
|
||||
type UserNameError struct {
|
||||
Name string
|
||||
}
|
||||
|
||||
// UserFormatError is an error for when the name format does not match what is required
|
||||
type UserFormatError UserNameError
|
||||
|
||||
func (e UserFormatError) Error() string {
|
||||
return fmt.Sprintf("\"%s\", is in an invalid format", e.Name)
|
||||
}
|
||||
|
||||
// UserTakenError is an error for when a user tries to join with a name that is already taken
|
||||
type UserTakenError UserNameError
|
||||
|
||||
func (e UserTakenError) Error() string {
|
||||
return fmt.Sprintf("\"%s\", is already taken", e.Name)
|
||||
}
|
||||
|
||||
// BannedUserError is an error for when a user tries to join with a banned ip address
|
||||
type BannedUserError struct {
|
||||
Host, Name string
|
||||
Names []string
|
||||
}
|
||||
|
||||
func (e BannedUserError) Error() string {
|
||||
return fmt.Sprintf("banned user tried to connect with IP %s: %s (banned with name(s) %s)", e.Host, e.Name, strings.Join(e.Names, ", "))
|
||||
}
|
||||
|
||||
func newBannedUserError(host, name string, names []string) BannedUserError {
|
||||
return BannedUserError{
|
||||
Host: host,
|
||||
Name: name,
|
||||
Names: names,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user