This repository has been archived on 2022-09-04. You can view files and clone it, but cannot push or open issues or pull requests.
api/utils/sanitize_sort.go

25 lines
473 B
Go

package utils
import (
"regexp"
"strings"
)
var (
sortRegex = regexp.MustCompile(`^[\p{L}\_]+$`)
)
func SanitizeSort(sort string) string {
trimmed := strings.TrimSpace(sort)
splitted := strings.Split(trimmed, " ")
length := len(splitted)
if length != 2 || !sortRegex.Match([]byte(splitted[0])) {
return ""
}
keyword := "ASC"
if strings.ToUpper(splitted[1]) == "DESC" {
keyword = "DESC"
}
return strings.ToLower(Underscore(splitted[0])) + " " + keyword
}