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