@@ -41,31 +41,33 @@ public class ApplicationController implements ApplicationEndpoints {
41
41
@ Override
42
42
public Mono <ResponseView <ApplicationView >> create (@ RequestBody CreateApplicationRequest createApplicationRequest ) {
43
43
return applicationApiService .create (createApplicationRequest )
44
- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_CREATE ))
44
+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (null , applicationView , APPLICATION_CREATE ))
45
45
.map (ResponseView ::success );
46
46
}
47
47
48
48
@ Override
49
49
public Mono <ResponseView <ApplicationView >> createFromTemplate (@ RequestParam String templateId ) {
50
50
return applicationApiService .createFromTemplate (templateId )
51
- .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (applicationView , APPLICATION_CREATE ))
51
+ .delayUntil (applicationView -> businessEventPublisher .publishApplicationCommonEvent (null , applicationView , APPLICATION_CREATE ))
52
52
.map (ResponseView ::success );
53
53
}
54
54
55
55
@ Override
56
56
public Mono <ResponseView <Boolean >> recycle (@ PathVariable String applicationId ) {
57
57
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 )));
61
62
}
62
63
63
64
@ Override
64
65
public Mono <ResponseView <Boolean >> restore (@ PathVariable String applicationId ) {
65
66
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 )));
69
71
}
70
72
71
73
@ Override
@@ -78,9 +80,10 @@ public Mono<ResponseView<List<ApplicationInfoView>>> getRecycledApplications(@Re
78
80
@ Override
79
81
public Mono <ResponseView <ApplicationView >> delete (@ PathVariable String applicationId ) {
80
82
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 )));
84
87
}
85
88
86
89
@ Override
@@ -94,38 +97,42 @@ public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable S
94
97
@ Override
95
98
public Mono <ResponseView <ApplicationView >> getPublishedApplication (@ PathVariable String applicationId , @ RequestParam (required = false ) Boolean withDeleted ) {
96
99
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 )));
101
105
}
102
106
103
107
@ Override
104
108
public Mono <ResponseView <ApplicationView >> getPublishedMarketPlaceApplication (@ PathVariable String applicationId ) {
105
109
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 )));
110
115
}
111
116
112
117
@ Override
113
118
public Mono <ResponseView <ApplicationView >> getAgencyProfileApplication (@ PathVariable String applicationId ) {
114
119
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 )));
119
125
}
120
126
121
127
@ Override
122
128
public Mono <ResponseView <ApplicationView >> update (@ PathVariable String applicationId ,
123
129
@ RequestBody Application newApplication ,
124
130
@ RequestParam (required = false ) Boolean updateStatus ) {
125
131
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 )));
129
136
}
130
137
131
138
@ Override
0 commit comments