Fix bug where search would be case sensitive when using PostgreSQL
This commit is contained in:
parent
adfcf33e79
commit
5eb4bf83f3
|
@ -1,6 +1,8 @@
|
||||||
package actions
|
package actions
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/photoview/photoview/api/graphql/models"
|
"github.com/photoview/photoview/api/graphql/models"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
@ -19,7 +21,7 @@ func Search(db *gorm.DB, query string, userID int, _limitMedia *int, _limitAlbum
|
||||||
limitAlbums = *_limitAlbums
|
limitAlbums = *_limitAlbums
|
||||||
}
|
}
|
||||||
|
|
||||||
wildQuery := "%" + query + "%"
|
wildQuery := "%" + strings.ToLower(query) + "%"
|
||||||
|
|
||||||
var media []*models.Media
|
var media []*models.Media
|
||||||
|
|
||||||
|
@ -32,10 +34,10 @@ func Search(db *gorm.DB, query string, userID int, _limitMedia *int, _limitAlbum
|
||||||
|
|
||||||
err := db.Joins("Album").
|
err := db.Joins("Album").
|
||||||
Where("EXISTS (?)", userSubquery).
|
Where("EXISTS (?)", userSubquery).
|
||||||
Where("media.title LIKE ? OR media.path LIKE ?", wildQuery, wildQuery).
|
Where("LOWER(media.title) LIKE ? OR LOWER(media.path) LIKE ?", wildQuery, wildQuery).
|
||||||
Clauses(clause.OrderBy{
|
Clauses(clause.OrderBy{
|
||||||
Expression: clause.Expr{
|
Expression: clause.Expr{
|
||||||
SQL: "(CASE WHEN media.title LIKE ? THEN 2 WHEN media.path LIKE ? THEN 1 END) DESC",
|
SQL: "(CASE WHEN LOWER(media.title) LIKE ? THEN 2 WHEN LOWER(media.path) LIKE ? THEN 1 END) DESC",
|
||||||
Vars: []interface{}{wildQuery, wildQuery},
|
Vars: []interface{}{wildQuery, wildQuery},
|
||||||
WithoutParentheses: true},
|
WithoutParentheses: true},
|
||||||
}).
|
}).
|
||||||
|
|
Loading…
Reference in New Issue