From 81b722452cebe1a3fa1c2e42b4bed106e31b0fbf Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 9 Jan 2021 00:42:25 +0900 Subject: feat: use LIKE on queries for case sensitivity issues --- src/api/utils/QueryHelper.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/api/utils/QueryHelper.js') diff --git a/src/api/utils/QueryHelper.js b/src/api/utils/QueryHelper.js index d9f253a..17ef03e 100644 --- a/src/api/utils/QueryHelper.js +++ b/src/api/utils/QueryHelper.js @@ -104,7 +104,7 @@ class QueryHelper { const subQ = db.table('fileTags') .select('fileTags.fileId') .join('tags', 'fileTags.tagId', '=', 'tags.id') - .whereIn('tags.name', list) + .where(builder => list.map(l => builder.orWhere('tags.name', 'like', l))) .groupBy('fileTags.fileId') .havingRaw('count(distinct tags.name) = ?', [list.length]); @@ -115,7 +115,7 @@ class QueryHelper { const subQ = db.table('albumsFiles') .select('albumsFiles.fileId') .join('albums', 'albumsFiles.albumId', '=', 'albums.id') - .whereIn('albums.name', list) + .where(builder => list.map(l => builder.orWhere('albums.name', 'like', l))) .groupBy('albumsFiles.fileId') .havingRaw('count(distinct albums.name) = ?', [list.length]); @@ -126,7 +126,7 @@ class QueryHelper { const subQ = db.table('fileTags') .select('fileTags.fileId') .join('tags', 'fileTags.tagId', '=', 'tags.id') - .whereIn('tags.name', list); + .where(builder => list.map(l => builder.orWhere('tags.name', 'like', l))); return knex.whereNotIn('files.id', subQ); } @@ -135,7 +135,7 @@ class QueryHelper { const subQ = db.table('albumsFiles') .select('albumsFiles.fileId') .join('albums', 'albumsFiles.albumId', '=', 'albums.id') - .whereIn('albums.name', list); + .where(builder => list.map(l => builder.orWhere('albums.name', 'like', l))); return knex.whereNotIn('files.id', subQ); } -- cgit v1.2.3