Documentation ¶
Index ¶
- Variables
- type FakeRepository
- func (r *FakeRepository) UserAdd(user User) error
- func (r *FakeRepository) UserDeleteByUUID(userUUID string) error
- func (r *FakeRepository) UserGetAll() ([]User, error)
- func (r *FakeRepository) UserGetByEmail(email string) (User, error)
- func (r *FakeRepository) UserGetByNickName(nick string) (User, error)
- func (r *FakeRepository) UserGetByUUID(userUUID string) (User, error)
- func (r *FakeRepository) UserIsEmailRegistered(email string) (bool, error)
- func (r *FakeRepository) UserIsNickNameRegistered(nick string) (bool, error)
- func (r *FakeRepository) UserUpdate(user User) error
- func (r *FakeRepository) UserUpdateInfo(info InfoUpdate) error
- func (r *FakeRepository) UserUpdatePasswordHash(passwordHash PasswordHashUpdate) error
- type InfoUpdate
- type PasswordHashUpdate
- type PasswordUpdate
- type Repository
- type Service
- func (s *Service) Add(user User) error
- func (s *Service) All() ([]User, error)
- func (s *Service) Authenticate(email, password string) (User, error)
- func (s *Service) ByNickName(nick string) (User, error)
- func (s *Service) ByUUID(userUUID string) (User, error)
- func (s *Service) DeleteByUUID(userUUID string) error
- func (s *Service) Update(user User) error
- func (s *Service) UpdateInfo(info InfoUpdate) error
- func (s *Service) UpdatePassword(passwordUpdate PasswordUpdate) error
- func (s *Service) UpdatePasswordHash(user User) error
- type User
Constants ¶
This section is empty.
Variables ¶
var ( ErrNotFound error = errors.New("not found") ErrDisplayNameRequired error = errors.New("display name required") ErrEmailAlreadyRegistered error = errors.New("email already registered") ErrEmailRequired error = errors.New("email required") ErrNickNameAlreadyRegistered error = errors.New("nickname already registered") ErrNickNameInvalid error = errors.New("invalid nickname") ErrNickNameRequired error = errors.New("nickname required") ErrPasswordConfirmationMismatch error = errors.New("new password and confirmation do not match") ErrPasswordHashRequired error = errors.New("password hash required") ErrPasswordIncorrect error = errors.New("incorrect password") ErrPasswordRequired error = errors.New("password required") ErrUUIDRequired error = errors.New("UUID required") )
Functions ¶
This section is empty.
Types ¶
type FakeRepository ¶
type FakeRepository struct { // TODO refactor with map[uuid]User Users []User }
func (*FakeRepository) UserAdd ¶
func (r *FakeRepository) UserAdd(user User) error
func (*FakeRepository) UserDeleteByUUID ¶
func (r *FakeRepository) UserDeleteByUUID(userUUID string) error
func (*FakeRepository) UserGetAll ¶
func (r *FakeRepository) UserGetAll() ([]User, error)
func (*FakeRepository) UserGetByEmail ¶
func (r *FakeRepository) UserGetByEmail(email string) (User, error)
func (*FakeRepository) UserGetByNickName ¶
func (r *FakeRepository) UserGetByNickName(nick string) (User, error)
func (*FakeRepository) UserGetByUUID ¶
func (r *FakeRepository) UserGetByUUID(userUUID string) (User, error)
func (*FakeRepository) UserIsEmailRegistered ¶
func (r *FakeRepository) UserIsEmailRegistered(email string) (bool, error)
func (*FakeRepository) UserIsNickNameRegistered ¶
func (r *FakeRepository) UserIsNickNameRegistered(nick string) (bool, error)
func (*FakeRepository) UserUpdate ¶
func (r *FakeRepository) UserUpdate(user User) error
func (*FakeRepository) UserUpdateInfo ¶
func (r *FakeRepository) UserUpdateInfo(info InfoUpdate) error
func (*FakeRepository) UserUpdatePasswordHash ¶
func (r *FakeRepository) UserUpdatePasswordHash(passwordHash PasswordHashUpdate) error
type InfoUpdate ¶
type InfoUpdate struct { UUID string Email string NickName string DisplayName string UpdatedAt time.Time }
InfoUpdate represents an account information update for an authenticated user.
type PasswordHashUpdate ¶
PasswordHashUpdate represents a password hash change for an authenticated user.
type PasswordUpdate ¶
type PasswordUpdate struct { UUID string CurrentPassword string NewPassword string NewPasswordConfirmation string }
PasswordHashUpdate represents a password change for an authenticated user.
type Repository ¶
type Repository interface { // UserAdd saves a new user. UserAdd(User) error // UserDelete deletes an existing user and all related data. UserDeleteByUUID(uuid string) error // UserGetAll returns a list of all User accounts. UserGetAll() ([]User, error) // UserGetByEmail returns the User registered with a given email address. UserGetByEmail(email string) (User, error) // UserGetByNickName returns the User registered with a given nickname. UserGetByNickName(nick string) (User, error) // UserGetByUUID returns the User corresponding to a given UUID. UserGetByUUID(string) (User, error) // UserIsEmailRegistered returns whether there is an existing user // registered with this email address. UserIsEmailRegistered(email string) (bool, error) // UserIsNickNameRegistered returns whether there is an existing user // registered with this nickname. UserIsNickNameRegistered(nick string) (bool, error) // UserUpdate updates an existing user. UserUpdate(User) error // UserUpdateInfo updates an existing user's account information. UserUpdateInfo(InfoUpdate) error // UserUpdatePasswordHash updates an existing user's account password hash. UserUpdatePasswordHash(PasswordHashUpdate) error }
Repository provides access to the User repository.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service handles operations for the user domain.
func NewService ¶
func NewService(r Repository) *Service
NewService initializes and returns a User Service.
func (*Service) Authenticate ¶
Authenticate checks user-submitted credentials to determine whether a user submitted the correct login information.
func (*Service) ByNickName ¶
ByNickName returns the user corresponding to a given NickName.
func (*Service) DeleteByUUID ¶
DeleteByUUID deletes an existing user and all related data.
func (*Service) UpdateInfo ¶
func (s *Service) UpdateInfo(info InfoUpdate) error
UpdateInfo updates an existing user's account information.
func (*Service) UpdatePassword ¶
func (s *Service) UpdatePassword(passwordUpdate PasswordUpdate) error
UpdatePassword updates an existing user's password.
func (*Service) UpdatePasswordHash ¶
UpdatePasswordHash updates an existing user's password hash.
type User ¶
type User struct { // UUID is the internal identifier for this User. UUID string // Email is the identifier a User logs in with. Email string // NickName is the handle used in user-specific URLs, and may only contain // alphanumerical characters, the dash character, or the underscore character. NickName string // DisplayName is the handle used in the Web interface for this User. DisplayName string // Password is the clear-text password for this User, that will be set when // creating or updating the User, and cleared once it has been hashed. Password string // PasswordHash contains the securely hashed password for this User. PasswordHash string // IsAdmin represents whether this User has administration privileges. IsAdmin bool CreatedAt time.Time UpdatedAt time.Time }
User represents a registered user.