package adminauth import "errors" var ( ErrDependencyUnavailable = errors.New("dependency unavailable") ErrInvalidCredential = errors.New("invalid credential") ErrAdminDisabled = errors.New("admin disabled") ) type Service struct { repo *Repository } func NewService(repo *Repository) *Service { return &Service{repo: repo} } func (s *Service) Login(username string, password string) (LoginResult, error) { if s.repo == nil { return LoginResult{}, ErrDependencyUnavailable } if username == "" || password == "" { return LoginResult{}, ErrInvalidCredential } return s.repo.Login(username, password) } func (s *Service) Me(adminID uint64) (*AdminDTO, error) { if s.repo == nil { return nil, ErrDependencyUnavailable } return s.repo.FindByID(adminID) }