@@ -19,7 +19,7 @@ class GuestsServiceError extends Error {
19
19
}
20
20
}
21
21
22
- const createTicketToken = ( { id, guestId, created } ) => jwt . sign ( {
22
+ const generateTicketToken = ( { id, guestId, created } ) => jwt . sign ( {
23
23
iss : 'mustachebash' ,
24
24
aud : guestId ,
25
25
iat : Math . round ( created / 1000 ) ,
@@ -84,7 +84,7 @@ module.exports = {
84
84
async getTicketQrCode ( guestId , ticketId ) {
85
85
const [ ticket ] = await run ( r . table ( 'tickets' ) . getAll ( [ guestId , ticketId ] , { index : 'guestAndTicketId' } ) ) . then ( cursor => cursor . toArray ( ) ) ;
86
86
87
- return generateQRDataURI ( JSON . stringify ( createTicketToken ( ticket ) ) ) ;
87
+ return generateQRDataURI ( JSON . stringify ( generateTicketToken ( ticket ) ) ) ;
88
88
} ,
89
89
90
90
async createGuestTicket ( guestId , { createdBy = 'purchase' } = { } ) {
@@ -111,13 +111,30 @@ module.exports = {
111
111
async getCurrentGuestTicketQrCode ( guestId ) {
112
112
const [ ticket ] = await run ( r . table ( 'tickets' ) . getAll ( guestId , { index : 'guestId' } ) . filter ( { status : 'active' } ) ) . then ( cursor => cursor . toArray ( ) ) ;
113
113
114
- return generateQRDataURI ( JSON . stringify ( createTicketToken ( ticket ) ) ) ;
114
+ return generateQRDataURI ( JSON . stringify ( generateTicketToken ( ticket ) ) ) ;
115
115
} ,
116
116
117
117
getGuestTickets ( guestId ) {
118
118
return run ( r . table ( 'tickets' ) . getAll ( guestId , { index : 'guestId' } ) ) . then ( cursor => cursor . toArray ( ) ) ;
119
119
} ,
120
120
121
+ async getTransactionTickets ( transactionId ) {
122
+ const query = r . table ( 'guests' )
123
+ . filter ( { transactionId} )
124
+ . eqJoin ( 'id' , r . table ( 'tickets' ) , { index : 'guestId' } )
125
+ . filter ( { right : { status : 'active' } } )
126
+ . map ( { guest : r . row ( 'left' ) , ticket : r . row ( 'right' ) } ) ;
127
+
128
+ const pairs = await run ( query ) . then ( cursor => cursor . toArray ( ) ) ;
129
+
130
+ // Inject the QR Codes
131
+ for ( const pair of pairs ) {
132
+ pair . ticket . qrCode = await generateQRDataURI ( JSON . stringify ( generateTicketToken ( pair . ticket ) ) ) ;
133
+ }
134
+
135
+ return pairs ;
136
+ } ,
137
+
121
138
async updateGuest ( id , updates ) {
122
139
for ( const u in updates ) {
123
140
// Update whitelist
0 commit comments