File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 1
1
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
+ }
You can’t perform that action at this time.
0 commit comments