@@ -28,24 +28,25 @@ export function consumeMessage(message) {
2828 const eventType = _ . get ( payload , 'Type__c' ) ;
2929 const original = JSON . parse ( _ . get ( payload , 'Original__c' ) ) ;
3030 const updated = JSON . parse ( _ . get ( payload , 'Updated__c' ) ) ;
31- let statusToBe = null ;
32- let statusChangeReason = null ;
33- if ( eventType === 'billingAccount.updated' ) {
31+ const delta = { }
32+ if ( eventType === 'billingAccount.update' ) {
3433 const oldStatus = _ . get ( original , 'Active__c' ) ;
3534 const updatedStatus = _ . get ( updated , 'Active__c' ) ;
3635 debug ( `${ oldStatus } === ${ updatedStatus } ` ) ;
36+ // billing account activated
3737 if ( oldStatus !== updatedStatus && updatedStatus === true ) {
38- statusToBe = 'active' ;
38+ delta . status = 'active' ;
39+ delta . billingAccountId = parseInt ( _ . get ( updated , 'TopCoder_Billing_Account_Id__c' , 0 ) , 10 ) ;
3940 }
4041 } else if ( eventType === 'opportunity.won' ) {
4142 // TODO
4243 } else if ( eventType === 'opportunity.lost' ) {
4344 // Cancel connect project
44- statusToBe = 'cancelled' ;
45- statusChangeReason = _ . get ( updated , 'Loss_Description__c' , 'Opportunity Lost' ) ;
45+ delta . status = 'cancelled' ;
46+ delta . cancelReason = _ . get ( updated , 'Loss_Description__c' , 'Opportunity Lost' ) ;
4647 } else if ( eventType === 'opportunity.create' ) {
4748 // Move to reviewed status
48- statusToBe = 'reviewed' ;
49+ delta . status = 'reviewed' ;
4950 } else if ( eventType === 'lead.status.update' ) {
5051 const oldStatus = _ . get ( original , 'Status' ) ;
5152 const updatedStatus = _ . get ( updated , 'Status' ) ;
@@ -54,29 +55,29 @@ export function consumeMessage(message) {
5455 const nurtureReason = _ . get ( updated , 'Nurture_Reason__c' ) ;
5556 if ( nurtureReason === 'BDR Rejected' ) {
5657 // Move to paused status
57- statusToBe = 'paused' ;
58+ delta . status = 'paused' ;
5859 }
5960 } else if ( updatedStatus === 'Disqualified' ) {
6061 // Cancel the project
61- statusToBe = 'cancelled' ;
62- statusChangeReason = _ . get ( updated , 'Disqualified_Reason__c' , 'Lead Disqualified' ) ;
62+ delta . status = 'cancelled' ;
63+ delta . cancelReason = _ . get ( updated , 'Disqualified_Reason__c' , 'Lead Disqualified' ) ;
6364 } else if ( updatedStatus === 'Qualified' ) {
6465 // Move to reviewed status
65- statusToBe = 'reviewed' ;
66+ delta . status = 'reviewed' ;
6667 } else if ( updatedStatus === 'Working' ) {
6768 // Move to in_review status
68- statusToBe = 'in_review' ;
69+ delta . status = 'in_review' ;
6970 }
7071 }
7172 }
7273 let projectId = _ . get ( updated , 'TC_Connect_Project_ID__c' ) ;
7374 if ( ! projectId ) {
7475 projectId = _ . get ( updated , 'TC_Connect_Project_Id__c' ) ;
7576 }
76- debug ( `Status to be updated: ${ statusToBe } for project with id ${ projectId } ` ) ;
77- if ( statusToBe && projectId ) {
78- debug ( `Updating status to ${ statusToBe } project with id ${ projectId } ` ) ;
79- ProjectService . updateProjectStatus ( projectId , statusToBe , statusChangeReason ) ;
77+ debug ( `Delta to be updated: ${ JSON . stringify ( delta ) } for project with id ${ projectId } ` ) ;
78+ if ( delta . status && projectId ) {
79+ debug ( `Updating project with delta ${ delta } with id ${ projectId } ` ) ;
80+ ProjectService . updateProject ( projectId , delta ) ;
8081 }
8182}
8283
@@ -88,7 +89,7 @@ function start() {
8889 debug ( 'CLient created...' ) ;
8990 client . setHeader ( 'Authorization' , `OAuth ${ accessToken } ` ) ;
9091 const sub = client . subscribe ( '/event/Connect_SFDC__e' , consumeMessage ) ;
91- debug ( 'Subscribed' , sub ) ;
92+ debug ( 'Subscribed ' , sub ) ;
9293 } ) ;
9394}
9495
0 commit comments