opt Methods
This commit is contained in:
parent
7d4e88c1b9
commit
d24388ad81
@ -46,7 +46,6 @@ func (o *Order) SortString() string {
|
|||||||
return ``
|
return ``
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func (o *Order) IsRaw() bool {
|
func (o *Order) IsRaw() bool {
|
||||||
return o.isRaw
|
return o.isRaw
|
||||||
}
|
}
|
||||||
@ -76,14 +75,26 @@ func OrderColumn(column string) OrderOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func OrderSort(sort Sort) OrderOption {
|
func sort(sort Sort) OrderOption {
|
||||||
return func(order *Order) {
|
return func(order *Order) {
|
||||||
order.sort = sort
|
order.sort = sort
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func OrderRaw(isRaw bool) OrderOption {
|
func OrderSortAscending() OrderOption {
|
||||||
|
return sort(SortAscending)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OrderSortDescending() OrderOption {
|
||||||
|
return sort(SortDescending)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OrderSortNone() OrderOption {
|
||||||
|
return sort(SortNone)
|
||||||
|
}
|
||||||
|
|
||||||
|
func OrderRaw() OrderOption {
|
||||||
return func(order *Order) {
|
return func(order *Order) {
|
||||||
order.isRaw = isRaw
|
order.isRaw = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,25 +5,76 @@ import "testing"
|
|||||||
func TestOrderClause(t *testing.T) {
|
func TestOrderClause(t *testing.T) {
|
||||||
var (
|
var (
|
||||||
column = `a`
|
column = `a`
|
||||||
sort = SortDescending
|
|
||||||
raw = true
|
|
||||||
)
|
)
|
||||||
|
|
||||||
o := OrderClause(
|
o := OrderClause(
|
||||||
OrderColumn(column),
|
OrderColumn(column),
|
||||||
OrderSort(sort),
|
|
||||||
OrderRaw(raw),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if o.GetColumn() != column {
|
if o.GetColumn() != column {
|
||||||
t.Error()
|
t.Error()
|
||||||
}
|
}
|
||||||
|
|
||||||
if o.GetSort() != sort {
|
|
||||||
t.Error()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if o.IsRaw() != raw {
|
func TestOrderSortAscending(t *testing.T) {
|
||||||
|
o := OrderClause(
|
||||||
|
OrderSortAscending(),
|
||||||
|
)
|
||||||
|
|
||||||
|
if o.GetSort() != SortAscending {
|
||||||
t.Error()
|
t.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestOrderSortDescending(t *testing.T) {
|
||||||
|
o := OrderClause(
|
||||||
|
OrderSortDescending(),
|
||||||
|
)
|
||||||
|
|
||||||
|
if o.GetSort() != SortDescending {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestOrderSortNone(t *testing.T) {
|
||||||
|
o1 := OrderClause(
|
||||||
|
OrderSortNone(),
|
||||||
|
)
|
||||||
|
|
||||||
|
if o1.GetSort() != SortNone {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
o2 := OrderClause()
|
||||||
|
|
||||||
|
if o2.GetSort() != SortNone {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestOrderRaw(t *testing.T) {
|
||||||
|
o1 := OrderClause()
|
||||||
|
|
||||||
|
if o1.IsRaw() {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
|
||||||
|
o2 := OrderClause(
|
||||||
|
OrderRaw(),
|
||||||
|
)
|
||||||
|
|
||||||
|
if !o2.IsRaw() {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestOrderColumn(t *testing.T) {
|
||||||
|
o1 := OrderClause(
|
||||||
|
OrderColumn(`aaa`),
|
||||||
|
)
|
||||||
|
|
||||||
|
if o1.GetColumn() != `aaa` {
|
||||||
|
t.Error()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -294,18 +294,16 @@ type QuerySeter interface {
|
|||||||
// for example:
|
// for example:
|
||||||
// OrderClauses(clauses.OrderClause(
|
// OrderClauses(clauses.OrderClause(
|
||||||
// clauses.OrderColumn(`status`),
|
// clauses.OrderColumn(`status`),
|
||||||
// clauses.OrderSort(clauses.SortAscending),
|
// clauses.OrderSortAscending(),//default None
|
||||||
// clauses.OrderRaw(false),
|
|
||||||
// ))
|
// ))
|
||||||
// OrderClauses(clauses.OrderClause(
|
// OrderClauses(clauses.OrderClause(
|
||||||
// clauses.OrderColumn(`user__status`),
|
// clauses.OrderColumn(`user__status`),
|
||||||
// clauses.OrderSort(clauses.SortAscending),
|
// clauses.OrderSortDescending(),//default None
|
||||||
// clauses.OrderRaw(false),
|
|
||||||
// ))
|
// ))
|
||||||
// OrderClauses(clauses.OrderClause(
|
// OrderClauses(clauses.OrderClause(
|
||||||
// clauses.OrderColumn(`random()`),
|
// clauses.OrderColumn(`random()`),
|
||||||
// clauses.OrderSort(clauses.SortNone),
|
// clauses.OrderSortNone(),//default None
|
||||||
// clauses.OrderRaw(true),
|
// clauses.OrderRaw(),//default false.if true, do not check field is valid or not
|
||||||
// ))
|
// ))
|
||||||
OrderClauses(orders ...*clauses.Order) QuerySeter
|
OrderClauses(orders ...*clauses.Order) QuerySeter
|
||||||
// add FORCE INDEX expression.
|
// add FORCE INDEX expression.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user