github.com/infraboard/keyauth@v0.8.1/apps/tag/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/tag" 8 ) 9 10 func newQueryTagKeyRequest(req *tag.QueryTagKeyRequest) (*queryTagKeyRequest, error) { 11 if err := req.Validate(); err != nil { 12 return nil, err 13 } 14 return &queryTagKeyRequest{ 15 QueryTagKeyRequest: req}, nil 16 } 17 18 type queryTagKeyRequest struct { 19 *tag.QueryTagKeyRequest 20 } 21 22 func (r *queryTagKeyRequest) FindOptions() *options.FindOptions { 23 pageSize := int64(r.Page.PageSize) 24 skip := int64(r.Page.PageSize) * int64(r.Page.PageNumber-1) 25 26 opt := &options.FindOptions{ 27 Sort: bson.D{{Key: "create_at", Value: -1}}, 28 Limit: &pageSize, 29 Skip: &skip, 30 } 31 32 return opt 33 } 34 35 func (r *queryTagKeyRequest) FindFilter() bson.M { 36 filter := bson.M{} 37 38 // if r.Type != role.RoleType_NULL { 39 // filter["type"] = r.Type 40 // } else { 41 // // 获取内建和全局的角色以及域内自己创建的角色 42 // filter["$or"] = bson.A{ 43 // bson.M{"type": role.RoleType_BUILDIN}, 44 // bson.M{"type": role.RoleType_GLOBAL}, 45 // bson.M{"type": role.RoleType_CUSTOM, "domain": r.tk.Domain}, 46 // } 47 // } 48 49 return filter 50 } 51 52 func newQueryTagValueRequest(req *tag.QueryTagValueRequest) (*queryTagValueRequest, error) { 53 if err := req.Validate(); err != nil { 54 return nil, err 55 } 56 return &queryTagValueRequest{ 57 QueryTagValueRequest: req}, nil 58 } 59 60 type queryTagValueRequest struct { 61 *tag.QueryTagValueRequest 62 } 63 64 func (r *queryTagValueRequest) FindOptions() *options.FindOptions { 65 pageSize := int64(r.Page.PageSize) 66 skip := int64(r.Page.PageSize) * int64(r.Page.PageNumber-1) 67 68 opt := &options.FindOptions{ 69 Sort: bson.D{{Key: "create_at", Value: -1}}, 70 Limit: &pageSize, 71 Skip: &skip, 72 } 73 74 return opt 75 } 76 77 func (r *queryTagValueRequest) FindFilter() bson.M { 78 filter := bson.M{} 79 80 if r.TagId != "" { 81 filter["key_id"] = r.TagId 82 } 83 84 return filter 85 } 86 87 func newDescribeTagRequest(req *tag.DescribeTagRequest) (*describeTagRequest, error) { 88 if err := req.Validate(); err != nil { 89 return nil, err 90 } 91 return &describeTagRequest{ 92 DescribeTagRequest: req}, nil 93 } 94 95 type describeTagRequest struct { 96 *tag.DescribeTagRequest 97 } 98 99 func (r *describeTagRequest) FindFilter() bson.M { 100 filter := bson.M{} 101 102 if r.TagId != "" { 103 filter["_id"] = r.TagId 104 } 105 106 return filter 107 }