/
apps.go
96 lines (83 loc) · 1.81 KB
/
apps.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
90
91
92
93
94
95
96
package entity
import (
auth "github.com/golang-tire/auth/internal/proto/v1"
"github.com/golang/protobuf/ptypes"
"gorm.io/gorm"
)
type App struct {
gorm.Model
UUID string `gorm:"index"`
Name string
Enable bool
}
type Resource struct {
gorm.Model
UUID string `gorm:"index"`
Name string `gorm:"index:idx_app_resource"`
AppID uint `gorm:"index:idx_app_resource"`
App App
}
type Object struct {
gorm.Model
UUID string `gorm:"index"`
Identifier string `gorm:"index:idx_app_object"`
AppID uint `gorm:"index:idx_app_object"`
App App
}
func (ap App) ToProto() *auth.App {
c, _ := ptypes.TimestampProto(ap.CreatedAt)
u, _ := ptypes.TimestampProto(ap.UpdatedAt)
app := &auth.App{
Uuid: ap.UUID,
Name: ap.Name,
Enable: ap.Enable,
CreatedAt: c,
UpdatedAt: u,
}
return app
}
func AppToProtoList(apl []App) []*auth.App {
var a []*auth.App
for _, i := range apl {
a = append(a, i.ToProto())
}
return a
}
func (r Resource) ToProto() *auth.Resource {
c, _ := ptypes.TimestampProto(r.CreatedAt)
u, _ := ptypes.TimestampProto(r.UpdatedAt)
resource := &auth.Resource{
Uuid: r.UUID,
Name: r.Name,
App: r.App.ToProto(),
CreatedAt: c,
UpdatedAt: u,
}
return resource
}
func ResourceToProtoList(rl []Resource) []*auth.Resource {
var r []*auth.Resource
for _, i := range rl {
r = append(r, i.ToProto())
}
return r
}
func (o Object) ToProto() *auth.Object {
c, _ := ptypes.TimestampProto(o.CreatedAt)
u, _ := ptypes.TimestampProto(o.UpdatedAt)
object := &auth.Object{
Uuid: o.UUID,
Identifier: o.Identifier,
App: o.App.ToProto(),
CreatedAt: c,
UpdatedAt: u,
}
return object
}
func ObjectToProtoList(ol []Object) []*auth.Object {
var o []*auth.Object
for _, i := range ol {
o = append(o, i.ToProto())
}
return o
}