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

View File

@@ -213,7 +213,8 @@ export const superAdminServiceFactory = ({
return userDAL.getUsersByFilter({
limit,
offset,
searchTerm
searchTerm,
sortBy: "username"
});
};

View File

@@ -7,7 +7,8 @@ import {
TUserActionsUpdate,
TUserEncryptionKeys,
TUserEncryptionKeysInsert,
TUserEncryptionKeysUpdate
TUserEncryptionKeysUpdate,
TUsers
} from "@app/db/schemas";
import { DatabaseError } from "@app/lib/errors";
import { ormify, selectAllTableCols } from "@app/lib/knex";
@@ -21,11 +22,13 @@ export const userDALFactory = (db: TDbClient) => {
const getUsersByFilter = async ({
limit,
offset,
searchTerm
searchTerm,
sortBy
}: {
limit: number;
offset: number;
searchTerm: string;
sortBy?: keyof TUsers;
}) => {
try {
let query = db.replicaNode()(TableName.Users).where("isGhost", "=", false);
@@ -38,6 +41,11 @@ export const userDALFactory = (db: TDbClient) => {
.orWhereLike("username", `%${searchTerm}%`);
});
}
if (sortBy) {
query = query.orderBy(sortBy);
}
return await query.limit(limit).offset(offset).select(selectAllTableCols(TableName.Users));
} catch (error) {
throw new DatabaseError({ error, name: "Get users by filter" });