package account import ( "nos-comptes/internal/storage/dao" "nos-comptes/internal/storage/model" "nos-comptes/internal/utils" ) type Service struct { db *Database } func (s *Service) GetAllAccountOfUser(userId string) ([]*Account, error) { accounts, err := s.db.GetAllAccountOfUser(userId) if e, ok := err.(*dao.Error); ok { switch { case e.Type == dao.ErrTypeNotFound: return nil, &model.ErrNotFound default: return nil, &model.ErrInternalServer } } else if err != nil { return nil, &model.ErrInternalServer } if accounts == nil { return nil, &model.ErrNotFound } return accounts, nil } func (s *Service) GetAccountWithNameForUser(name string, id string) (*Account, error) { account, err := s.db.GetAccountWithNameForUser(name, id) utils.GetLogger().Warn(err) if e, ok := err.(*dao.Error); ok { switch { case e.Type == dao.ErrTypeNotFound: return nil, &model.ErrNotFound default: return nil, &model.ErrInternalServer } } else if err != nil { return nil, &model.ErrInternalServer } return account, nil } func (s *Service) CreateAccount(account Account) (*Account, error) { err := s.db.CreateAccount(&account) return &account, err } func NewService(database *Database) *Service { return &Service{db: database} }