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
|
// jika searching status terdapat dalam enum, maka dia mencari specific data
|
||||||
// ? karena jika tidak, ketika dia search "active" maka "inactive" juga ikut
|
// ? karena jika tidak, ketika dia search "active" maka "inactive" juga ikut
|
||||||
if (STATUS[statusData.toUpperCase()])
|
if (STATUS[statusData.toUpperCase()])
|
||||||
qb.orWhere(`${tableName}.status = :statusData`, {
|
qb.orWhere(`${ tableName }.status = :statusData`, {
|
||||||
statusData: statusData,
|
statusData: statusData,
|
||||||
});
|
});
|
||||||
else
|
else
|
||||||
qb['orWhere'](
|
qb['orWhere'](
|
||||||
`${tableName}.status::text ILIKE '%${[statusData]}%'`,
|
`${ tableName }.status::text ILIKE '%${ [statusData] }%'`,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
|
@ -85,15 +85,25 @@ export function getOrderBy(
|
||||||
queryBuilder: SelectQueryBuilder<any>,
|
queryBuilder: SelectQueryBuilder<any>,
|
||||||
tableName: TABLE_NAME,
|
tableName: TABLE_NAME,
|
||||||
) {
|
) {
|
||||||
let orderBy: string = `${tableName}.created_at`;
|
let orderBys: string[] = [`${ tableName }.created_at`];
|
||||||
const orderType = baseFilter.order_type ?? ORDER_TYPE.DESC;
|
const orderType = baseFilter.order_type ?? ORDER_TYPE.DESC;
|
||||||
|
|
||||||
if (!!baseFilter.order_by) {
|
if (!!baseFilter.order_by) {
|
||||||
orderBy =
|
orderBys =
|
||||||
baseFilter.order_by.split('.').length > 1
|
baseFilter.order_by.split('.').length > 1
|
||||||
? `${baseFilter.order_by}`
|
? [`${ baseFilter.order_by }`]
|
||||||
: `${tableName}.${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