From 5eb4bf83f3fb923975683a5f1664b2350fcedfdf Mon Sep 17 00:00:00 2001 From: viktorstrate Date: Thu, 2 Sep 2021 18:20:10 +0200 Subject: [PATCH] Fix bug where search would be case sensitive when using PostgreSQL --- api/graphql/models/actions/search_actions.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/api/graphql/models/actions/search_actions.go b/api/graphql/models/actions/search_actions.go index d55b811b..be64980c 100644 --- a/api/graphql/models/actions/search_actions.go +++ b/api/graphql/models/actions/search_actions.go @@ -1,6 +1,8 @@ package actions import ( + "strings" + "github.com/photoview/photoview/api/graphql/models" "github.com/pkg/errors" "gorm.io/gorm" @@ -19,7 +21,7 @@ func Search(db *gorm.DB, query string, userID int, _limitMedia *int, _limitAlbum limitAlbums = *_limitAlbums } - wildQuery := "%" + query + "%" + wildQuery := "%" + strings.ToLower(query) + "%" var media []*models.Media @@ -32,10 +34,10 @@ func Search(db *gorm.DB, query string, userID int, _limitMedia *int, _limitAlbum err := db.Joins("Album"). 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{ 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}, WithoutParentheses: true}, }).