@@ -58,48 +58,58 @@ exports.leave = function(req, res, next){
5858
5959 Member . findOneQ ( { key : key } )
6060 . then ( function ( member ) {
61- var event = Event . prepare ( 'memberLeft' , member . fleetKey , member . toObject ( ) )
62- event . saveQ ( ) ;
63- member . removeQ ( ) ;
64-
61+ if ( member ) {
62+ var event = Event . prepare ( 'memberLeft' , member . fleetKey , member . toObject ( ) ) ;
63+ event . saveQ ( ) ;
64+ member . removeQ ( ) ;
65+
66+ }
67+
6568 return response . success ( res ) ;
6669 } )
6770 . catch ( function ( error ) {
6871 console . log ( error )
69- return response . error ( res , 'state' , 'Error joining fleet: ' + error ) ;
72+ return response . error ( res , 'state' , 'Error leaving fleet: ' + error ) ;
7073 } )
7174 . done ( ) ;
7275
7376} ;
7477
7578exports . status = function ( req , res , next ) {
79+ if ( ! req . session ) return next ( ) ;
80+
7681 if ( ! req . session . fleetKey || ! req . session . memberKey ) {
7782 var self = Member . prepare ( 'none' , header_parser ( req ) )
7883 var event = Event . prepare ( 'statusSelf' , 'none' , self . toObject ( ) )
7984
8085 return response . success ( res , [ event ] ) ;
8186 }
8287
88+ var events = [ ] ;
89+
8390 Member . findOneQ ( { key : req . session . memberKey } )
8491 . then ( function ( member ) {
85- var events = [ ] ;
92+ if ( ! member ) throw 'Invalid Member key.' ;
8693 events . push ( Event . prepare ( 'statusSelf' , member . fleetKey , member . toObject ( ) ) ) ;
8794
95+ return Fleet . findOne ( { key : member . fleetKey } ) . execQ ( ) ;
96+ } )
97+ . then ( function ( fleet ) {
98+ if ( ! fleet ) throw 'Invalid Fleet.' ;
99+ events . push ( Event . prepare ( 'statusFleet' , fleet . key , fleet . toObject ( ) ) ) ;
100+
88101 var tasks = [
89- Fleet . findOne ( { key : member . fleetKey } ) . execQ ( ) . then ( function ( fleet ) {
90- return Event . prepare ( 'statusFleet ' , member . fleetKey , fleet . toObject ( ) ) ;
102+ Event . find ( { fleetKey : fleet . key } ) . execQ ( ) . then ( function ( events ) {
103+ return Event . prepare ( 'statusEvents ' , fleet . key , _ . map ( events , function ( event ) { return event . toObject ( ) ; } ) ) ;
91104 } ) ,
92- Event . find ( { fleetKey : member . fleetKey } ) . execQ ( ) . then ( function ( events ) {
93- return Event . prepare ( 'statusEvents ' , member . fleetKey , _ . map ( events , function ( event ) { return event . toObject ( ) ; } ) ) ;
105+ Member . find ( { fleetKey : fleet . key } ) . execQ ( ) . then ( function ( members ) {
106+ return Event . prepare ( 'statusMembers ' , fleet . key , _ . map ( members , function ( member ) { return member . toObject ( ) ; } ) ) ;
94107 } ) ,
95- Member . find ( { fleetKey : member . fleetKey } ) . execQ ( ) . then ( function ( members ) {
96- return Event . prepare ( 'statusMembers ' , member . fleetKey , _ . map ( members , function ( member ) { return member . toObject ( ) ; } ) ) ;
108+ Hostile . find ( { fleetKey : fleet . key } ) . execQ ( ) . then ( function ( hostiles ) {
109+ return Event . prepare ( 'statusHostiles ' , fleet . key , _ . map ( hostiles , function ( hostile ) { return hostile . toObject ( ) ; } ) ) ;
97110 } ) ,
98- Hostile . find ( { fleetKey : member . fleetKey } ) . execQ ( ) . then ( function ( hostiles ) {
99- return Event . prepare ( 'statusHostiles' , member . fleetKey , _ . map ( hostiles , function ( hostile ) { return hostile . toObject ( ) ; } ) ) ;
100- } ) ,
101- Scan . find ( { fleetKey : member . fleetKey } ) . execQ ( ) . then ( function ( scans ) {
102- return Event . prepare ( 'statusScans' , member . fleetKey , _ . map ( scans , function ( scan ) { return scan . toObject ( ) ; } ) ) ;
111+ Scan . find ( { fleetKey : fleet . key } ) . execQ ( ) . then ( function ( scans ) {
112+ return Event . prepare ( 'statusScans' , fleet . key , _ . map ( scans , function ( scan ) { return scan . toObject ( ) ; } ) ) ;
103113 } )
104114 ] ;
105115
@@ -110,13 +120,21 @@ exports.status = function(req, res, next) {
110120 } )
111121 . catch ( function ( error ) {
112122 console . log ( error )
113- return response . error ( res , 'state' , 'Error fetching fleet tasks.' ) ;
123+ req . sessionStore . destroy ( req . session . id , function ( err ) {
124+ delete req . session ;
125+ } ) ;
126+
127+ return response . error ( res , 'status' , 'Error fetching fleet tasks.' ) ;
114128 } )
115129 . done ( ) ;
116130 } )
117131 . catch ( function ( error ) {
118132 console . log ( error )
119- return response . error ( res , 'state' , 'Error fetching fleet status.' ) ;
133+ req . sessionStore . destroy ( req . session . id , function ( err ) {
134+ delete req . session ;
135+ } ) ;
136+
137+ return response . error ( res , 'status' , 'Error fetching fleet status.' ) ;
120138 } )
121139 . done ( ) ;
122140
0 commit comments