30 lines
563 B
Go
30 lines
563 B
Go
package entgo
|
|
|
|
import (
|
|
"entgo.io/ent/dialect/sql"
|
|
"github.com/tx7do/go-utils/stringcase"
|
|
)
|
|
|
|
func BuildFieldSelect(s *sql.Selector, fields []string) {
|
|
if len(fields) > 0 {
|
|
for i, field := range fields {
|
|
switch {
|
|
case field == "id_" || field == "_id":
|
|
field = "id"
|
|
}
|
|
fields[i] = stringcase.ToSnakeCase(field)
|
|
}
|
|
s.Select(fields...)
|
|
}
|
|
}
|
|
|
|
func BuildFieldSelector(fields []string) (error, func(s *sql.Selector)) {
|
|
if len(fields) > 0 {
|
|
return nil, func(s *sql.Selector) {
|
|
BuildFieldSelect(s, fields)
|
|
}
|
|
} else {
|
|
return nil, nil
|
|
}
|
|
}
|