github.com/infraboard/keyauth@v0.8.1/apps/domain/impl/query.go (about) 1 package impl 2 3 import ( 4 "go.mongodb.org/mongo-driver/bson" 5 "go.mongodb.org/mongo-driver/mongo/options" 6 7 "github.com/infraboard/keyauth/apps/domain" 8 ) 9 10 func newQueryDomainRequest(req *domain.QueryDomainRequest) *request { 11 return &request{ 12 QueryDomainRequest: req, 13 } 14 } 15 16 type request struct { 17 *domain.QueryDomainRequest 18 } 19 20 func (r *request) FindOptions() *options.FindOptions { 21 pageSize := int64(r.Page.PageSize) 22 skip := int64(r.Page.PageSize) * int64(r.Page.PageNumber-1) 23 24 opt := &options.FindOptions{ 25 Sort: bson.D{{Key: "create_at", Value: -1}}, 26 Limit: &pageSize, 27 Skip: &skip, 28 } 29 30 return opt 31 } 32 33 func (r *request) FindFilter() bson.M { 34 filter := bson.M{} 35 36 filter["owner"] = r.Owner 37 return filter 38 } 39 40 func newDescDomainRequest(req *domain.DescribeDomainRequest) (*descDomain, error) { 41 if err := req.Validate(); err != nil { 42 return nil, err 43 } 44 return &descDomain{req}, nil 45 } 46 47 type descDomain struct { 48 *domain.DescribeDomainRequest 49 } 50 51 func (req *descDomain) FindFilter() bson.M { 52 filter := bson.M{} 53 54 if req.Name != "" { 55 filter["_id"] = req.Name 56 } 57 58 return filter 59 }