36 lines
840 B
Go
36 lines
840 B
Go
package arango
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
// Operator error.
|
|
var (
|
|
ErrInvalidSortDirection = errors.New("invalid sort direction")
|
|
)
|
|
|
|
var (
|
|
sorts = map[string]string{
|
|
// Idempotent
|
|
"ASC": "ASC",
|
|
"DESC": "DESC",
|
|
|
|
// Compatible with Sort.Direction in github.com/annybs/go/qs
|
|
//
|
|
// Although lowercase keywords can be used in AQL, uppercase is favoured for stylistic consistency.
|
|
"asc": "ASC",
|
|
"desc": "DESC",
|
|
}
|
|
)
|
|
|
|
// ParseSortDirection returns the valid AQL operator for an arbitrary direction string.
|
|
// This supports different inputs, such as Sort.Direction in github.com/annybs/go/qs
|
|
//
|
|
// If the input operator cannot be mapped to AQL, this function returns ErrInvalidSortDirection.
|
|
func ParseSortDirection(op string) (string, error) {
|
|
if sorts[op] == "" {
|
|
return "", ErrInvalidSortDirection
|
|
}
|
|
return sorts[op], nil
|
|
}
|