fix(index) perbaikan sorting index
parent
9445d561ac
commit
bc0d8cbb10
|
@ -23,12 +23,12 @@ export function setQueryFilterDefault(
|
|||
// jika searching status terdapat dalam enum, maka dia mencari specific data
|
||||
// ? karena jika tidak, ketika dia search "active" maka "inactive" juga ikut
|
||||
if (STATUS[statusData.toUpperCase()])
|
||||
qb.orWhere(`${tableName}.status = :statusData`, {
|
||||
qb.orWhere(`${ tableName }.status = :statusData`, {
|
||||
statusData: statusData,
|
||||
});
|
||||
else
|
||||
qb['orWhere'](
|
||||
`${tableName}.status::text ILIKE '%${[statusData]}%'`,
|
||||
`${ tableName }.status::text ILIKE '%${ [statusData] }%'`,
|
||||
);
|
||||
});
|
||||
}),
|
||||
|
@ -85,15 +85,25 @@ export function getOrderBy(
|
|||
queryBuilder: SelectQueryBuilder<any>,
|
||||
tableName: TABLE_NAME,
|
||||
) {
|
||||
let orderBy: string = `${tableName}.created_at`;
|
||||
let orderBys: string[] = [`${ tableName }.created_at`];
|
||||
const orderType = baseFilter.order_type ?? ORDER_TYPE.DESC;
|
||||
|
||||
if (!!baseFilter.order_by) {
|
||||
orderBy =
|
||||
orderBys =
|
||||
baseFilter.order_by.split('.').length > 1
|
||||
? `${baseFilter.order_by}`
|
||||
: `${tableName}.${baseFilter.order_by}`;
|
||||
? [`${ baseFilter.order_by }`]
|
||||
: [`${ tableName }.${ baseFilter.order_by }`];
|
||||
|
||||
if (baseFilter.order_by.split('.').length == 1 && baseFilter.order_by.split('.').pop() != 'id') {
|
||||
orderBys.push(`${ tableName }.created_at`)
|
||||
}
|
||||
}
|
||||
|
||||
queryBuilder.orderBy(orderBy, orderType);
|
||||
for (let i = 0; i < orderBys.length; i++) {
|
||||
if (i == 0) {
|
||||
queryBuilder.orderBy(orderBys[i], orderType);
|
||||
} else {
|
||||
queryBuilder.addOrderBy(orderBys[i], orderType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue