fix(SPG-503) BE - Search by Status - Dapat melakukan pencarian dgn sebagian huruf, tanpa mengeluarkan ERR row
parent
f35aa7412f
commit
a8322e13e5
|
@ -1,9 +1,9 @@
|
|||
import { SelectQueryBuilder } from 'typeorm';
|
||||
import { Brackets, SelectQueryBuilder } from 'typeorm';
|
||||
import { WhereInQueryHelper } from './or-where-in-query.helpe';
|
||||
import { BaseFilterEntity } from 'src/core/modules/domain/entities/base-filter.entity';
|
||||
import { BetweenQueryHelper } from './between-query.helper';
|
||||
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
||||
import { ORDER_TYPE } from 'src/core/strings/constants/base.constants';
|
||||
import { ORDER_TYPE, STATUS } from 'src/core/strings/constants/base.constants';
|
||||
|
||||
export function setQueryFilterDefault(
|
||||
queryBuilder: SelectQueryBuilder<any>,
|
||||
|
@ -11,14 +11,26 @@ export function setQueryFilterDefault(
|
|||
tableName: TABLE_NAME,
|
||||
): SelectQueryBuilder<any> {
|
||||
// filter berdasarkan statuses
|
||||
if (!!baseFilter.statuses)
|
||||
new WhereInQueryHelper(
|
||||
queryBuilder,
|
||||
tableName,
|
||||
'status',
|
||||
baseFilter.statuses,
|
||||
'statuses',
|
||||
).getQuery();
|
||||
if (!!baseFilter.statuses) {
|
||||
queryBuilder.andWhere(
|
||||
new Brackets((qb) => {
|
||||
baseFilter.statuses.map((status) => {
|
||||
const statusData = status.includes("'")
|
||||
? status.trim().replace(/'/g, "''").replace(/\s+/g, ' ')
|
||||
: status.trim().replace(/\s+/g, ' ');
|
||||
|
||||
if (STATUS[statusData.toUpperCase()])
|
||||
qb.orWhere(`${tableName}.status = :statusData`, {
|
||||
statusData: statusData,
|
||||
});
|
||||
else
|
||||
qb['orWhere'](
|
||||
`${tableName}.status::text ILIKE '%${[statusData]}%'`,
|
||||
);
|
||||
});
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
// filter berdasarkan id pembuat
|
||||
if (!!baseFilter.created_ids)
|
||||
|
|
Loading…
Reference in New Issue