File tree Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change 1
- import { router , protectedStaffProcedure , protectedProcedure } from '../trpc' ;
1
+ import { router , protectedStaffProcedure , protectedProcedure , publicProcedure } from '../trpc' ;
2
2
import { z } from 'zod' ;
3
3
import { TRPCClientError } from '@trpc/client' ;
4
+ import { TicketStatus } from '@prisma/client' ;
4
5
5
6
export const queueRouter = router ( {
6
7
getQueueByName : protectedProcedure
@@ -27,6 +28,30 @@ export const queueRouter = router({
27
28
} ) ;
28
29
} ) ,
29
30
31
+ // Returns personal queue names mapping to isOpen, and the number of open tickets in each queue
32
+ getPersonalQueueStats : publicProcedure . query ( async ( { ctx } ) => {
33
+ const personalQueues = await ctx . prisma . personalQueue . findMany ( {
34
+ select : {
35
+ name : true ,
36
+ isOpen : true ,
37
+ Ticket : {
38
+ select : {
39
+ status : true ,
40
+ } ,
41
+ where : {
42
+ status : TicketStatus . OPEN ,
43
+ } ,
44
+ }
45
+ } ,
46
+ } ) ;
47
+
48
+ return personalQueues . map ( ( queue ) => ( {
49
+ queueName : queue . name ,
50
+ isQueueOpen : queue . isOpen ,
51
+ numOpenTickets : queue . Ticket . length ,
52
+ } ) )
53
+ } ) ,
54
+
30
55
createQueue : protectedStaffProcedure
31
56
. input (
32
57
z . object ( {
You can’t perform that action at this time.
0 commit comments