33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
package db
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"allaboutapps.dev/aw/go-starter/internal/types"
|
|
"github.com/aarondl/sqlboiler/v4/queries/qm"
|
|
)
|
|
|
|
func OrderBy(orderDir types.OrderDir, path ...string) qm.QueryMod {
|
|
return qm.OrderBy(fmt.Sprintf("%s %s", strings.Join(path, "."), strings.ToUpper(string(orderDir))))
|
|
}
|
|
|
|
func OrderByLower(orderDir types.OrderDir, path ...string) qm.QueryMod {
|
|
return qm.OrderBy(fmt.Sprintf("LOWER(%s) %s", strings.Join(path, "."), strings.ToUpper(string(orderDir))))
|
|
}
|
|
|
|
type OrderByNulls string
|
|
|
|
const (
|
|
OrderByNullsFirst OrderByNulls = "FIRST"
|
|
OrderByNullsLast OrderByNulls = "LAST"
|
|
)
|
|
|
|
func OrderByWithNulls(orderDir types.OrderDir, orderByNulls OrderByNulls, path ...string) qm.QueryMod {
|
|
return qm.OrderBy(fmt.Sprintf("%s %s NULLS %s", strings.Join(path, "."), strings.ToUpper(string(orderDir)), orderByNulls))
|
|
}
|
|
|
|
func OrderByLowerWithNulls(orderDir types.OrderDir, orderByNulls OrderByNulls, path ...string) qm.QueryMod {
|
|
return qm.OrderBy(fmt.Sprintf("LOWER(%s) %s NULLS %s", strings.Join(path, "."), strings.ToUpper(string(orderDir)), orderByNulls))
|
|
}
|