To install the base criteria dependency, run the following command:
go get github.com/AndrusGerman/go-criteria- MYSQL from URL
var urlParse, err = url.Parse("http://localhost:3000/api/users?filters[0][field]=name&filters[0][operator]=CONTAINS&filters[0][value]=Javi")
if err != nil {
panic(err)
}
crit, err := criteriafromurl.NewCriteriaFromUrlConverter().ToCriteria(urlParse)
if err != nil {
panic(err)
}
var sql, params = criteriatomysql.NewCriteriaToMySqlConverter().Convert(
[]string{"userId"},
"users",
crit,
nil,
)out: SELECT userId FROM users WHERE name LIKE ? params: [%Javi%]
- CUSTOM criteria
var crit, err = criteria.NewCriteriaBuilder().
Order(criteria.NewOrderNone()).
Filters(
criteria.NewFilter(
"userId",
criteria.EQUAL,
"10",
),
criteria.NewFilter(
"companyId",
criteria.GREATER_THAN,
"12",
),
criteria.NewFilter(
"companyName",
criteria.CONTAINS,
"app",
),
).GetCriteria()- criteria to MongoDB
var query = criteriatomongodb.NewCriteriaToMongodb().Convert(
[]string{},
crit,
nil,
)This package is initially inspired by the implementation of typescript-criteria created by codelyTv