Skip to content

Commit a93d266

Browse files
committed
user service done
1 parent 97985b9 commit a93d266

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

pkg/user/service.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,43 @@
11
package user
2+
3+
type Service interface {
4+
Register(user *User) (*User, error)
5+
6+
GetUserByID(id float64) (*User, error)
7+
8+
GetRepo() Repository
9+
}
10+
11+
type service struct {
12+
repo Repository
13+
}
14+
15+
func NewService(r Repository) Service {
16+
return &service{
17+
repo: r,
18+
}
19+
}
20+
21+
func (s *service) Register(user *User) (*User, error) {
22+
exists, err := s.repo.DoesEmailExist(user.Email)
23+
if err != nil {
24+
return nil, err
25+
}
26+
if exists {
27+
//noinspection GoErrorStringFormat
28+
u, err := s.repo.FindByEmail(user.Email)
29+
if err != nil {
30+
return nil, err
31+
}
32+
return u, nil
33+
}
34+
return s.repo.Register(user)
35+
}
36+
37+
func (s *service) GetUserByID(id float64) (*User, error) {
38+
return s.repo.FindByID(id)
39+
}
40+
41+
func (s *service) GetRepo() Repository {
42+
return s.repo
43+
}

0 commit comments

Comments
 (0)