@@ -204,7 +204,40 @@ app.put('/sync', async (req, res) => {
204204 return res . status ( 500 ) . json ( { status : 'error' , message : 'An error occurred while processing your request. Please try again later.' } ) ;
205205 } ;
206206 } ;
207- res . status ( 200 ) . json ( { status : 'success' , message : 'Your commissions were synchronized successfully.' } ) ;
207+ return res . status ( 200 ) . json ( { status : 'success' , message : 'Your commissions were synchronized successfully.' } ) ;
208+ } ) ;
209+
210+ app . get ( '/:id' , async ( req , res ) => {
211+ if ( ! on ) return res . render ( 'off' , { tenant, title : 'Activation' } ) ;
212+ if ( ! req . session ) return res . render ( 'session' , { tenant, title : 'Session' } ) ;
213+ if ( ! tenant . slug || ! tenant . name || ! tenant . domain ) return res . render ( 'tenant' , { tenant, title : 'Configuration' } ) ;
214+ if ( tenant . auth && tenant . auth . enabled && vars . userId && ! req . session [ vars . userId ] ) return res . render ( 'auth' , { tenant, title : 'Authenticate' } ) ;
215+ req . session [ vars . commissions ] = ( req . session [ vars . commissions ] || [ ] ) . map ( commission => {
216+ if ( ! commission . id || ! commission . user || ( commission . date ? isNaN ( new Date ( commission . date ) . getTime ( ) ) : false ) || ( typeof commission . status !== 'string' ) || ( typeof commission . tasks !== 'object' ) ) return null ;
217+ return {
218+ id : commission . id ,
219+ user : commission . user ,
220+ amount : commission . amount ? Number ( commission . amount ) : null ,
221+ currency : commission . currency ? String ( commission . currency ) : 'USD' ,
222+ date : commission . date ? new Date ( commission . date ) : null ,
223+ status : commission . status ,
224+ fields : fields . reduce ( ( acc , field ) => {
225+ acc [ field . id ] = ( commission . fields && ( commission . fields [ field . id ] !== undefined ) ) ? commission . fields [ field . id ] : null ;
226+ return acc ;
227+ } , { } ) ,
228+ tasks : ( commission . tasks || [ ] ) . map ( task => {
229+ return {
230+ done : task . done || false ,
231+ content : task . content ? String ( task . content ) : ''
232+ }
233+ } ) ,
234+ locked : commission . locked || false
235+ } ;
236+ } ) . filter ( commission => commission !== null ) ;
237+ if ( getUserRole ( req . session ) === 'user' ) req . session [ vars . commissions ] = req . session [ vars . commissions ] . filter ( commission => commission . user === req . session [ vars . userId ] ) ;
238+ const commission = ( req . session [ vars . commissions ] || [ ] ) . find ( commission => ( String ( commission . id ) === String ( req . params . id ) ) && ( commission . user === req . session [ vars . userId ] ) ) ;
239+ if ( ! commission ) return res . status ( 404 ) . render ( 'error' , { tenant, title : 'Not Found' , message : 'The requested commission was not found.' } ) ;
240+ return res . render ( 'commission' , { tenant, title : `Commission ${ commission . id } ` , session : req . session , vars, fields, role : getUserRole ( req . session ) , commission } ) ;
208241} ) ;
209242
210243app . use ( ( req , res ) => {
0 commit comments