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  }