Files
cloudpods/pkg/cloudcommon/validators/misc.go
2018-12-12 08:50:57 +00:00

30 lines
551 B
Go

package validators
import (
"yunion.io/x/jsonutils"
"yunion.io/x/sqlchemy"
)
type ModelFilterOptions struct {
Key string
ModelKeyword string
ProjectId string
}
func ApplyModelFilters(q *sqlchemy.SQuery, data *jsonutils.JSONDict, opts []*ModelFilterOptions) (*sqlchemy.SQuery, error) {
var err error
for _, opt := range opts {
v := NewModelIdOrNameValidator(
opt.Key,
opt.ModelKeyword,
opt.ProjectId,
)
v.Optional(true)
q, err = v.QueryFilter(q, data)
if err != nil {
return nil, err
}
}
return q, nil
}