Skip to content

Commit

Permalink
Fix bug where search would be case sensitive when using PostgreSQL
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorstrate committed Sep 2, 2021
1 parent adfcf33 commit 5eb4bf8
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions 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"
Expand All @@ -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

Expand All @@ -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},
}).
Expand Down

0 comments on commit 5eb4bf8

Please sign in to comment.