@@ -41,31 +41,33 @@ public class ApplicationController implements ApplicationEndpoints {
4141 @ Override
4242 public Mono <ResponseView <ApplicationView >> create (@ RequestBody CreateApplicationRequest createApplicationRequest ) {
4343 return applicationApiService .create (createApplicationRequest )
44- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_CREATE ))
44+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (null , applicationView , APPLICATION_CREATE ))
4545 .map (ResponseView ::success );
4646 }
4747
4848 @ Override
4949 public Mono <ResponseView <ApplicationView >> createFromTemplate (@ RequestParam String templateId ) {
5050 return applicationApiService .createFromTemplate (templateId )
51- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_CREATE ))
51+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (null , applicationView , APPLICATION_CREATE ))
5252 .map (ResponseView ::success );
5353 }
5454
5555 @ Override
5656 public Mono <ResponseView <Boolean >> recycle (@ PathVariable String applicationId ) {
5757 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
58- applicationApiService .recycle (appId )
59- .delayUntil (__ -> businessEventPublisher .publishApplicationCommonEvent (applicationId , null , null , APPLICATION_RECYCLED ))
60- .map (ResponseView ::success ));
58+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
59+ applicationApiService .recycle (appId )
60+ .delayUntil (__ -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationId , null , null , APPLICATION_RECYCLED ))
61+ .map (ResponseView ::success )));
6162 }
6263
6364 @ Override
6465 public Mono <ResponseView <Boolean >> restore (@ PathVariable String applicationId ) {
6566 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
66- applicationApiService .restore (appId )
67- .delayUntil (__ -> businessEventPublisher .publishApplicationCommonEvent (applicationId , null , null , APPLICATION_RESTORE ))
68- .map (ResponseView ::success ));
67+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
68+ applicationApiService .restore (appId )
69+ .delayUntil (__ -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationId , null , null , APPLICATION_RESTORE ))
70+ .map (ResponseView ::success )));
6971 }
7072
7173 @ Override
@@ -78,9 +80,10 @@ public Mono<ResponseView<List<ApplicationInfoView>>> getRecycledApplications(@Re
7880 @ Override
7981 public Mono <ResponseView <ApplicationView >> delete (@ PathVariable String applicationId ) {
8082 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
81- applicationApiService .delete (appId )
82- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_DELETE ))
83- .map (ResponseView ::success ));
83+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
84+ applicationApiService .delete (appId )
85+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationView , APPLICATION_DELETE ))
86+ .map (ResponseView ::success )));
8487 }
8588
8689 @ Override
@@ -94,38 +97,42 @@ public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable S
9497 @ Override
9598 public Mono <ResponseView <ApplicationView >> getPublishedApplication (@ PathVariable String applicationId , @ RequestParam (required = false ) Boolean withDeleted ) {
9699 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
97- applicationApiService .getPublishedApplication (appId , ApplicationRequestType .PUBLIC_TO_ALL , withDeleted )
98- .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
99- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_VIEW ))
100- .map (ResponseView ::success ));
100+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
101+ applicationApiService .getPublishedApplication (appId , ApplicationRequestType .PUBLIC_TO_ALL , withDeleted )
102+ .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
103+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationView , APPLICATION_VIEW ))
104+ .map (ResponseView ::success )));
101105 }
102106
103107 @ Override
104108 public Mono <ResponseView <ApplicationView >> getPublishedMarketPlaceApplication (@ PathVariable String applicationId ) {
105109 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
106- applicationApiService .getPublishedApplication (appId , ApplicationRequestType .PUBLIC_TO_MARKETPLACE , false )
107- .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
108- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_VIEW ))
109- .map (ResponseView ::success ));
110+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
111+ applicationApiService .getPublishedApplication (appId , ApplicationRequestType .PUBLIC_TO_MARKETPLACE , false )
112+ .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
113+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationView , APPLICATION_VIEW ))
114+ .map (ResponseView ::success )));
110115 }
111116
112117 @ Override
113118 public Mono <ResponseView <ApplicationView >> getAgencyProfileApplication (@ PathVariable String applicationId ) {
114119 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
115- applicationApiService .getPublishedApplication (appId , ApplicationRequestType .AGENCY_PROFILE , false )
116- .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
117- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_VIEW ))
118- .map (ResponseView ::success ));
120+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
121+ applicationApiService .getPublishedApplication (appId , ApplicationRequestType .AGENCY_PROFILE , false )
122+ .delayUntil (applicationView -> applicationApiService .updateUserApplicationLastViewTime (appId ))
123+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationView , APPLICATION_VIEW ))
124+ .map (ResponseView ::success )));
119125 }
120126
121127 @ Override
122128 public Mono <ResponseView <ApplicationView >> update (@ PathVariable String applicationId ,
123129 @ RequestBody Application newApplication ,
124130 @ RequestParam (required = false ) Boolean updateStatus ) {
125131 return gidService .convertApplicationIdToObjectId (applicationId ).flatMap (appId ->
126- applicationApiService .update (appId , newApplication , updateStatus )
127- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_UPDATE ))
128- .map (ResponseView ::success ));
132+ applicationApiService .getEditingApplication (appId , true ).flatMap (originalApplicationView ->
133+ applicationApiService .update (appId , newApplication , updateStatus )
134+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (originalApplicationView , applicationView , APPLICATION_UPDATE ))
135+ .map (ResponseView ::success )));
129136 }
130137
131138 @ Override
0 commit comments