github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/service/model/query.go (about)

     1  package model
     2  
     3  type Query struct {
     4  	Index
     5  	Order  Order
     6  	Value  interface{}
     7  	Offset int64
     8  	Limit  int64
     9  }
    10  
    11  // Equals is an equality query by `fieldName`
    12  // It filters records where `fieldName` equals to a value.
    13  func QueryEquals(fieldName string, value interface{}) Query {
    14  	return Query{
    15  		Index: Index{
    16  			Type:      queryTypeEq,
    17  			FieldName: fieldName,
    18  			Order: Order{
    19  				FieldName: fieldName,
    20  				Type:      OrderTypeAsc,
    21  			},
    22  		},
    23  		Value: value,
    24  		Order: Order{
    25  			FieldName: fieldName,
    26  			Type:      OrderTypeAsc,
    27  		},
    28  	}
    29  }
    30  
    31  func QueryAll() Query {
    32  	return Query{
    33  		Index: Index{
    34  			Type:      queryTypeAll,
    35  			FieldName: "ID",
    36  		},
    37  	}
    38  }
    39  
    40  // QueryByID is short hand for querying by the primary index
    41  func QueryByID(id string) Query {
    42  	return QueryEquals("ID", id)
    43  }