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  }