github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/repo/order_by.go (about)

     1  package repo
     2  
     3  // OrderByDir is a type encapsulating the ORDER BY direction
     4  type OrderByDir string
     5  
     6  const (
     7  	// AscOrderBy defines ascending order
     8  	AscOrderBy OrderByDir = "ASC"
     9  	// DescOrderBy defines descending order
    10  	DescOrderBy OrderByDir = "DESC"
    11  )
    12  
    13  // OrderBy type that wraps the information about the ordering column and direction
    14  type OrderBy struct {
    15  	Field string
    16  	Dir   OrderByDir
    17  }
    18  
    19  // NewAscOrderBy returns wrapping type for ascending order for a given column (field)
    20  func NewAscOrderBy(field string) OrderBy {
    21  	return OrderBy{
    22  		Field: field,
    23  		Dir:   AscOrderBy,
    24  	}
    25  }
    26  
    27  // NewDescOrderBy returns wrapping type for descending ordered for a given column (field)
    28  func NewDescOrderBy(field string) OrderBy {
    29  	return OrderBy{
    30  		Field: field,
    31  		Dir:   DescOrderBy,
    32  	}
    33  }
    34  
    35  // OrderByParams is a wrapping type for slice of OrderBy types
    36  type OrderByParams []OrderBy
    37  
    38  // NoOrderBy represents default ordering (no order specified)
    39  var NoOrderBy = OrderByParams{}