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  }