github.com/infraboard/keyauth@v0.8.1/apps/domain/domain_ext.go (about) 1 package domain 2 3 import ( 4 "github.com/go-playground/validator/v10" 5 "github.com/infraboard/mcube/types/ftime" 6 ) 7 8 // use a single instance of Validate, it caches struct info 9 var ( 10 validate = validator.New() 11 ) 12 13 // New 新建一个domain 14 func New(req *CreateDomainRequest) (*Domain, error) { 15 if err := req.Validate(); err != nil { 16 return nil, err 17 } 18 19 d := &Domain{ 20 CreateAt: ftime.Now().Timestamp(), 21 UpdateAt: ftime.Now().Timestamp(), 22 Owner: req.Owner, 23 Name: req.Name, 24 Profile: req.Profile, 25 Enabled: true, 26 SecuritySetting: NewDefaultSecuritySetting(), 27 } 28 29 return d, nil 30 } 31 32 // NewDefault todo 33 func NewDefault() *Domain { 34 return &Domain{ 35 Profile: &DomainProfile{}, 36 SecuritySetting: NewDefaultSecuritySetting(), 37 } 38 } 39 40 // NewDomainSet 实例 41 func NewDomainSet() *Set { 42 return &Set{ 43 Items: []*Domain{}, 44 } 45 } 46 47 // Length 总个数 48 func (s *Set) Length() int { 49 return len(s.Items) 50 } 51 52 // Add 添加Item 53 func (s *Set) Add(d *Domain) { 54 s.Items = append(s.Items, d) 55 }