85262: Get submission object instead of sending empty patch + revert empty patch code

This commit is contained in:
Kristof De Langhe
2021-12-10 14:18:51 +01:00
parent ed2c774d86
commit 549529c889
3 changed files with 28 additions and 17 deletions

View File

@@ -196,13 +196,21 @@ export class SubmissionObjectEffects {
*/
@Effect() saveAndDeposit$ = this.actions$.pipe(
ofType(SubmissionObjectActionTypes.SAVE_AND_DEPOSIT_SUBMISSION),
withLatestFrom(this.store$),
switchMap(([action, currentState]: [SaveAndDepositSubmissionAction, any]) => {
return this.operationsService.jsonPatchByResourceType(
this.submissionService.getSubmissionObjectLinkName(),
action.payload.submissionId,
'sections',
true).pipe(
withLatestFrom(this.submissionService.hasUnsavedModification()),
switchMap(([action, hasUnsavedModification]: [SaveAndDepositSubmissionAction, boolean]) => {
let response$: Observable<SubmissionObject[]>;
if (hasUnsavedModification) {
response$ = this.operationsService.jsonPatchByResourceType(
this.submissionService.getSubmissionObjectLinkName(),
action.payload.submissionId,
'sections') as Observable<SubmissionObject[]>;
} else {
response$ = this.submissionObjectService.findById(action.payload.submissionId).pipe(
getFirstSucceededRemoteDataPayload(),
map((submissionObject: SubmissionObject) => [submissionObject])
);
}
return response$.pipe(
map((response: SubmissionObject[]) => {
if (this.canDeposit(response)) {
return new DepositSubmissionAction(action.payload.submissionId);