misc: added sort by

This commit is contained in:
Sheen Capadngan
2024-07-09 00:57:23 +08:00
parent 9efbffe5d2
commit d0f0dca3a3
2 changed files with 12 additions and 3 deletions
@@ -213,7 +213,8 @@ export const superAdminServiceFactory = ({
return userDAL.getUsersByFilter({ return userDAL.getUsersByFilter({
limit, limit,
offset, offset,
searchTerm searchTerm,
sortBy: "username"
}); });
}; };
+10 -2
View File
@@ -7,7 +7,8 @@ import {
TUserActionsUpdate, TUserActionsUpdate,
TUserEncryptionKeys, TUserEncryptionKeys,
TUserEncryptionKeysInsert, TUserEncryptionKeysInsert,
TUserEncryptionKeysUpdate TUserEncryptionKeysUpdate,
TUsers
} from "@app/db/schemas"; } from "@app/db/schemas";
import { DatabaseError } from "@app/lib/errors"; import { DatabaseError } from "@app/lib/errors";
import { ormify, selectAllTableCols } from "@app/lib/knex"; import { ormify, selectAllTableCols } from "@app/lib/knex";
@@ -21,11 +22,13 @@ export const userDALFactory = (db: TDbClient) => {
const getUsersByFilter = async ({ const getUsersByFilter = async ({
limit, limit,
offset, offset,
searchTerm searchTerm,
sortBy
}: { }: {
limit: number; limit: number;
offset: number; offset: number;
searchTerm: string; searchTerm: string;
sortBy?: keyof TUsers;
}) => { }) => {
try { try {
let query = db.replicaNode()(TableName.Users).where("isGhost", "=", false); let query = db.replicaNode()(TableName.Users).where("isGhost", "=", false);
@@ -38,6 +41,11 @@ export const userDALFactory = (db: TDbClient) => {
.orWhereLike("username", `%${searchTerm}%`); .orWhereLike("username", `%${searchTerm}%`);
}); });
} }
if (sortBy) {
query = query.orderBy(sortBy);
}
return await query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Users)); return await query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Users));
} catch (error) { } catch (error) {
throw new DatabaseError({ error, name: "Get users by filter" }); throw new DatabaseError({ error, name: "Get users by filter" });