enhance: case-insensitive search with ILike
This commit is contained in:
parent
2998943dfa
commit
db7a4fff03
2 changed files with 8 additions and 8 deletions
|
@ -228,19 +228,19 @@ export default abstract class DynamicQueryBuilder {
|
||||||
query += ` IS NOT NULL`;
|
query += ` IS NOT NULL`;
|
||||||
break;
|
break;
|
||||||
case "contains":
|
case "contains":
|
||||||
query += ` LIKE :${parameterKey}`;
|
query += ` ILIKE :${parameterKey}`;
|
||||||
parameters[parameterKey] = `%${condition.value}%`;
|
parameters[parameterKey] = `%${condition.value}%`;
|
||||||
break;
|
break;
|
||||||
case "notContains":
|
case "notContains":
|
||||||
query += ` NOT LIKE :${parameterKey}`;
|
query += ` NOT ILIKE :${parameterKey}`;
|
||||||
parameters[parameterKey] = `%${condition.value}%`;
|
parameters[parameterKey] = `%${condition.value}%`;
|
||||||
break;
|
break;
|
||||||
case "startsWith":
|
case "startsWith":
|
||||||
query += ` LIKE :${parameterKey}`;
|
query += ` ILIKE :${parameterKey}`;
|
||||||
parameters[parameterKey] = `${condition.value}%`;
|
parameters[parameterKey] = `${condition.value}%`;
|
||||||
break;
|
break;
|
||||||
case "endsWith":
|
case "endsWith":
|
||||||
query += ` LIKE :${parameterKey}`;
|
query += ` ILIKE :${parameterKey}`;
|
||||||
parameters[parameterKey] = `%${condition.value}`;
|
parameters[parameterKey] = `%${condition.value}`;
|
||||||
break;
|
break;
|
||||||
case "timespanEq":
|
case "timespanEq":
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { Brackets, Like, Not, SelectQueryBuilder } from "typeorm";
|
import { Brackets, ILike, Not, SelectQueryBuilder } from "typeorm";
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { member } from "../../../entity/club/member/member";
|
import { member } from "../../../entity/club/member/member";
|
||||||
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../../exceptions/databaseActionException";
|
||||||
|
@ -30,7 +30,7 @@ export default abstract class MemberService {
|
||||||
|
|
||||||
if (searchBits.length < 2) {
|
if (searchBits.length < 2) {
|
||||||
query = query.where(
|
query = query.where(
|
||||||
`member.firstname LIKE :searchQuery OR member.lastname LIKE :searchQuery OR member.internalId LIKE :searchQuery`,
|
`member.firstname ILIKE :searchQuery OR member.lastname ILIKE :searchQuery OR member.internalId ILIKE :searchQuery`,
|
||||||
{
|
{
|
||||||
searchQuery: `%${searchBits[0]}%`,
|
searchQuery: `%${searchBits[0]}%`,
|
||||||
}
|
}
|
||||||
|
@ -42,12 +42,12 @@ export default abstract class MemberService {
|
||||||
query = query
|
query = query
|
||||||
.orWhere(
|
.orWhere(
|
||||||
new Brackets((qb) =>
|
new Brackets((qb) =>
|
||||||
qb.where({ firstname: Like(`%${term[0]}%`) }).andWhere({ lastname: Like(`%${term[1]}%`) })
|
qb.where({ firstname: ILike(`%${term[0]}%`) }).andWhere({ lastname: ILike(`%${term[1]}%`) })
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.orWhere(
|
.orWhere(
|
||||||
new Brackets((qb) =>
|
new Brackets((qb) =>
|
||||||
qb.where({ firstname: Like(`%${term[1]}%`) }).andWhere({ lastname: Like(`%${term[0]}%`) })
|
qb.where({ firstname: ILike(`%${term[1]}%`) }).andWhere({ lastname: ILike(`%${term[0]}%`) })
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue