/
user.go
76 lines (61 loc) · 1.21 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package dao
import (
"github.com/dmitriivoitovich/heameelega/dao/db"
"github.com/google/uuid"
)
func CreateUser(user *db.User) error {
return db.DB.Create(user).Error
}
func UserByEmail(email string) (*db.User, error) {
user := &db.User{}
err := db.DB.
Where("email = ?", email).
First(user).
Error
if err != nil {
return nil, err
}
return user, nil
}
func UserByAccessToken(token uuid.UUID) (*db.User, error) {
user := &db.User{}
err := db.DB.
Where("access_token = ?", token).
First(user).
Error
if err != nil {
return nil, err
}
return user, nil
}
func UserUpdateAccessToken(user *db.User, token uuid.UUID) error {
user.AccessToken = &token
return db.DB.
Model(user).
Update("access_token", user.AccessToken).
Error
}
func UserRemoveAccessToken(user *db.User) error {
user.AccessToken = nil
return db.DB.
Model(user).
Update("access_token", user.AccessToken).
Error
}
func UserUpdateEmailAndLanguage(user *db.User, email, language string) error {
err := db.DB.
Model(user).
Updates(
map[string]interface{}{
"Email": email,
"Language": language,
},
).
Error
if err != nil {
return err
}
user.Email = email
user.Language = language
return nil
}