Skip to content

Commit 6618be9

Browse files
Get user roles (#535)
* get user roles * sort by user roles
1 parent d7d3ed3 commit 6618be9

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

apps/api/src/person/person.service.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,34 @@ export class PersonService {
4848
],
4949
}),
5050
}
51+
52+
let sort: Prisma.PersonOrderByWithRelationInput = { createdAt: 'desc' }
53+
54+
if (sortBy)
55+
switch (sortBy) {
56+
case 'organizer':
57+
sort = { organizer: { createdAt: sortOrder == 'asc' ? 'asc' : 'desc' } }
58+
break
59+
case 'coordinators':
60+
sort = { coordinators: { createdAt: sortOrder == 'asc' ? 'asc' : 'desc' } }
61+
break
62+
case 'beneficiaries':
63+
sort = { beneficiaries: { _count: sortOrder == 'asc' ? 'desc' : 'asc' } }
64+
break
65+
default:
66+
sort = { [sortBy]: sortOrder ?? 'desc' }
67+
}
68+
5169
const data = await this.prisma.person.findMany({
5270
skip: pageIndex && pageSize ? pageIndex * pageSize : undefined,
5371
take: pageSize ? pageSize : undefined,
5472
where: whereClause,
55-
orderBy: [sortBy ? { [sortBy]: sortOrder ? sortOrder : 'desc' } : { createdAt: 'desc' }],
73+
orderBy: [sort],
74+
include: {
75+
organizer: { select: { id: true } },
76+
coordinators: { select: { id: true } },
77+
beneficiaries: { select: { id: true } },
78+
},
5679
})
5780

5881
const count = await this.prisma.person.count({

0 commit comments

Comments
 (0)