|
4 | 4 | "fmt"
|
5 | 5 | "strings"
|
6 | 6 |
|
| 7 | + "npm/internal/database" |
7 | 8 | "npm/internal/model"
|
8 | 9 |
|
9 | 10 | "gorm.io/gorm"
|
@@ -37,6 +38,7 @@ func ScopeOrderBy(pageInfo *model.PageInfo, defaultSort model.Sort) func(db *gor
|
37 | 38 |
|
38 | 39 | func ScopeFilters(filters []model.Filter, filterMap map[string]filterMapValue) func(db *gorm.DB) *gorm.DB {
|
39 | 40 | return func(db *gorm.DB) *gorm.DB {
|
| 41 | + like := database.GetCaseInsensitiveLike() |
40 | 42 | for _, f := range filters {
|
41 | 43 | // Lookup this filter field from the name map
|
42 | 44 | if _, ok := filterMap[f.Field]; ok {
|
@@ -69,11 +71,11 @@ func ScopeFilters(filters []model.Filter, filterMap map[string]filterMapValue) f
|
69 | 71 |
|
70 | 72 | // LIKE modifiers:
|
71 | 73 | case "contains":
|
72 |
| - db.Where(fmt.Sprintf("%s LIKE ?", f.Field), `%`+f.Value[0]+`%`) |
| 74 | + db.Where(fmt.Sprintf("%s %s ?", f.Field, like), `%`+f.Value[0]+`%`) |
73 | 75 | case "starts":
|
74 |
| - db.Where(fmt.Sprintf("%s LIKE ?", f.Field), f.Value[0]+`%`) |
| 76 | + db.Where(fmt.Sprintf("%s %s ?", f.Field, like), f.Value[0]+`%`) |
75 | 77 | case "ends":
|
76 |
| - db.Where(fmt.Sprintf("%s LIKE ?", f.Field), `%`+f.Value[0]) |
| 78 | + db.Where(fmt.Sprintf("%s %s ?", f.Field, like), `%`+f.Value[0]) |
77 | 79 |
|
78 | 80 | // Array parameter modifiers:
|
79 | 81 | case "in":
|
|
0 commit comments