@@ -4,6 +4,7 @@ import { SearchEntity } from '../../constants/search.entity.enum';
44import {
55 NewRoleInput ,
66 RoleInputFilter ,
7+ SortDirection ,
78 UpdateRoleInput ,
89 UpdateRolePermissionInput ,
910} from '../../schema/graphql.schema' ;
@@ -37,7 +38,10 @@ export class RoleService implements RoleServiceInterface {
3738 ) { }
3839
3940 async getAllRoles ( input ?: RoleInputFilter ) : Promise < [ Role [ ] , number ] > {
40- const SortFieldMapping = new Map ( [ [ 'name' , 'Role.name' ] ] ) ;
41+ const SortFieldMapping = new Map ( [
42+ [ 'name' , 'role.name' ] ,
43+ [ 'updatedAt' , 'role.updated_at' ] ,
44+ ] ) ;
4145 let queryBuilder = this . rolesRepository . createQueryBuilder ( 'role' ) ;
4246 if ( input ?. search ) {
4347 queryBuilder = this . searchService . generateSearchTermForEntity (
@@ -46,10 +50,16 @@ export class RoleService implements RoleServiceInterface {
4650 input . search ,
4751 ) ;
4852 }
53+
4954 if ( input ?. sort ) {
5055 const field = SortFieldMapping . get ( input . sort . field ) ;
51- field && queryBuilder . orderBy ( field , input . sort . direction ) ;
56+ field
57+ ? queryBuilder . orderBy ( field , input . sort . direction )
58+ : queryBuilder . orderBy ( 'role.updated_at' , SortDirection . DESC ) ;
59+ } else {
60+ queryBuilder . orderBy ( 'role.updated_at' , SortDirection . DESC ) ;
5261 }
62+
5363 if ( input ?. pagination ) {
5464 queryBuilder
5565 . limit ( input ?. pagination ?. limit ?? 10 )
@@ -96,8 +106,8 @@ export class RoleService implements RoleServiceInterface {
96106 }
97107
98108 await this . dataSource . manager . transaction ( async ( entityManager ) => {
99- const roleRepo = entityManager . getRepository ( Role ) ;
100109 const rolePermissionsRepo = entityManager . getRepository ( RolePermission ) ;
110+ const roleRepo = entityManager . getRepository ( Role ) ;
101111 await rolePermissionsRepo . softDelete ( { roleId : id } ) ;
102112 await roleRepo . softDelete ( id ) ;
103113 } ) ;
0 commit comments