-
Notifications
You must be signed in to change notification settings - Fork 0
/
usrinfo.go
89 lines (69 loc) · 1.4 KB
/
usrinfo.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
77
78
79
80
81
82
83
84
85
86
87
88
89
package jwork
import (
"github.com/daakghar-service/apperr"
"github.com/daakghar-service/conn"
"github.com/daakghar-service/data/db"
"github.com/daakghar-service/dbq"
"github.com/daakghar-service/dbq/filter"
"github.com/pkg/errors"
)
// UsrInfo provides user and role info
type UsrInfo struct {
UserName string
user *db.User
role *db.Role
err error
}
// User returns db user
func (u UsrInfo) User() *db.User {
return u.user
}
// Role returns db role
func (u UsrInfo) Role() *db.Role {
return u.role
}
// FindUser finds user from db
func (u *UsrInfo) FindUser() {
if u.hasErr() {
return
}
du := dbq.NewUser(conn.DB().DB())
usrs, err := du.List(filter.NewUserName(u.UserName))
if err != nil {
u.err = errors.Wrap(err, "jwork.UsrInfo.FindUser")
return
}
if len(usrs) == 0 {
u.err = apperr.NewNotFound("user", u.UserName)
return
}
u.user = &usrs[0]
}
// FindRole finds role from db
func (u *UsrInfo) FindRole() {
if u.hasErr() {
return
}
if u.user.RoleID == "" {
u.err = apperr.NewNotFound("user role", "empty role")
return
}
dr := dbq.NewRole(conn.DB().DB())
rl, err := dr.GetByID(u.user.RoleID)
if err != nil {
u.err = errors.Wrap(err, "jwork,UsrInfo.FindRole")
return
}
u.role = &rl
}
// Err returns error value
func (u UsrInfo) Err() error {
return u.err
}
// hasErr checks error
func (u UsrInfo) hasErr() bool {
if u.err != nil {
return true
}
return false
}