1- module . exports = function ( hostileService , eventService , memberService , headerParser , errorResponse , successResponse ) {
1+ module . exports = function ( hostileService , eventService , headerParser , errorResponse , successResponse , async ) {
22
33 var pub = { } ;
44
@@ -16,30 +16,35 @@ module.exports = function (hostileService, eventService, memberService, headerPa
1616 } ;
1717
1818 pub . run = function ( req , res ) {
19- var detailData = req . body . scanData ;
19+ var pilot = req . body . scanData ;
2020
21- if ( ! checkDetailsDataIntegrity ( detailData ) ) {
21+ if ( ! checkDetailsDataIntegrity ( pilot ) ) {
2222 return errorResponse . respond ( res , 'status' , 'Invalid detail data.' ) ;
2323 }
2424
25- hostileService . getById ( detailData . id , function ( error , hostile ) {
26- if ( error ) return errorResponse . respond ( res , 'status' , 'Error fetching hostile' ) ;
27-
28- var headerData = headerParser . parse ( req ) ;
29- hostile . shipType = detailData . shipType ;
30- headerData . systemId = hostile . systemId ;
31- headerData . systemName = hostile . systemName ;
32-
33- hostileService . updateAndGet ( headerData , hostile , req . session . armadaKey , function ( error , status ) {
34- if ( error ) return errorResponse . respond ( res , 'status' , 'Unable to add status' ) ;
35-
36- memberService . getByKey ( req . session . memberKey , function ( error , member ) {
37- if ( error ) return errorResponse . respond ( res , 'member' , 'Error fetching member' ) ;
38-
39- eventService . addAndGet ( 'updateHostile' , status , req . session . armadaKey , function ( error , event ) {
40- successResponse . respond ( res ) ;
25+ async . waterfall ( [
26+ function ( callback ) {
27+ hostileService . getById ( pilot . id , function ( error , hostile ) {
28+ if ( error ) return errorResponse . respond ( res , 'status' , 'Unable to find hostile by id ' + pilot . id ) ;
29+ if ( hostile !== null ) {
30+
31+ var headerData = headerParser . parse ( req ) ;
32+ hostile . shipType = pilot . shipType ;
33+ headerData . systemId = pilot . systemId ;
34+ headerData . systemName = pilot . systemName ;
35+ }
36+ callback ( null , hostile ) ;
37+ } ) ;
38+ } ,
39+ function ( pilot , callback ) {
40+ hostileService . updateAndGet ( headerParser . parse ( req ) , pilot , req . session . armadaKey , function ( hostile ) {
41+ callback ( null , hostile ) ;
4142 } ) ;
42- } ) ;
43+ }
44+ ] , function ( error , hostile ) {
45+ if ( error ) return errorResponse . respond ( res , 'status' , 'Unable to parse status.' ) ;
46+ eventService . addAndGet ( 'updateHostile' , hostile , req . session . armadaKey , function ( error , event ) {
47+ successResponse . respond ( res ) ;
4348 } ) ;
4449 } ) ;
4550 } ;
0 commit comments