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 { WhereInQueryHelper } from './or-where-in-query.helpe';
|
||||||
import { BaseFilterEntity } from 'src/core/modules/domain/entities/base-filter.entity';
|
import { BaseFilterEntity } from 'src/core/modules/domain/entities/base-filter.entity';
|
||||||
import { BetweenQueryHelper } from './between-query.helper';
|
import { BetweenQueryHelper } from './between-query.helper';
|
||||||
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
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(
|
export function setQueryFilterDefault(
|
||||||
queryBuilder: SelectQueryBuilder<any>,
|
queryBuilder: SelectQueryBuilder<any>,
|
||||||
|
@ -11,14 +11,26 @@ export function setQueryFilterDefault(
|
||||||
tableName: TABLE_NAME,
|
tableName: TABLE_NAME,
|
||||||
): SelectQueryBuilder<any> {
|
): SelectQueryBuilder<any> {
|
||||||
// filter berdasarkan statuses
|
// filter berdasarkan statuses
|
||||||
if (!!baseFilter.statuses)
|
if (!!baseFilter.statuses) {
|
||||||
new WhereInQueryHelper(
|
queryBuilder.andWhere(
|
||||||
queryBuilder,
|
new Brackets((qb) => {
|
||||||
tableName,
|
baseFilter.statuses.map((status) => {
|
||||||
'status',
|
const statusData = status.includes("'")
|
||||||
baseFilter.statuses,
|
? status.trim().replace(/'/g, "''").replace(/\s+/g, ' ')
|
||||||
'statuses',
|
: status.trim().replace(/\s+/g, ' ');
|
||||||
).getQuery();
|
|
||||||
|
if (STATUS[statusData.toUpperCase()])
|
||||||
|
qb.orWhere(`${tableName}.status = :statusData`, {
|
||||||
|
statusData: statusData,
|
||||||
|
});
|
||||||
|
else
|
||||||
|
qb['orWhere'](
|
||||||
|
`${tableName}.status::text ILIKE '%${[statusData]}%'`,
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// filter berdasarkan id pembuat
|
// filter berdasarkan id pembuat
|
||||||
if (!!baseFilter.created_ids)
|
if (!!baseFilter.created_ids)
|
||||||
|
|
Loading…
Reference in New Issue