diff --git a/.gitignore b/.gitignore index ec13a4e..e1e3389 100644 --- a/.gitignore +++ b/.gitignore @@ -116,4 +116,5 @@ dist .pnp.* lib -.vscode \ No newline at end of file +.vscode +.idea diff --git a/src/resource.ts b/src/resource.ts index e36a0e0..ee89402 100644 --- a/src/resource.ts +++ b/src/resource.ts @@ -84,7 +84,7 @@ class Resource extends BaseResource { async count(filter: Filter) { return this.SequelizeModel.count(({ - where: convertFilter(filter), + where: convertFilter(filter, this.databaseType()), })); } @@ -119,7 +119,7 @@ class Resource extends BaseResource { const { direction, sortBy } = sort; const sequelizeObjects = await this.SequelizeModel .findAll({ - where: convertFilter(filter), + where: convertFilter(filter, this.databaseType()), limit, offset, order: [[sortBy as string, (direction || 'asc').toUpperCase()]], diff --git a/src/utils/convert-filter.ts b/src/utils/convert-filter.ts index 2aec2b5..b546677 100644 --- a/src/utils/convert-filter.ts +++ b/src/utils/convert-filter.ts @@ -3,7 +3,7 @@ import { Op } from 'sequelize'; const uuidRegex = /^[0-9A-F]{8}-[0-9A-F]{4}-[5|4|3|2|1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i; -const convertFilter = (filter) => { +const convertFilter = (filter, databaseType: string) => { if (!filter) { return {}; } @@ -35,7 +35,7 @@ const convertFilter = (filter) => { ...(memo[Op.and] || []), { [property.name()]: { - [(Op.like as unknown) as string]: `%${escape(value)}%`, + [(databaseType === 'postgres' ? Op.iLike as unknown : Op.like as unknown) as string]: `%${escape(value)}%`, }, }, ],