From 749dbefc38316dc7e50516111a2ec705fe0d184d Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Mon, 19 Dec 2022 16:07:03 +0200 Subject: [PATCH] 1. return bad request when deposition failed and returned null 2. close modal with repositories after a successful deposition --- .../eu/eudat/controllers/DepositController.java | 7 ++++++- .../eu/eudat/logic/managers/DepositManager.java | 5 ++++- .../dmp-deposit-dialog.component.ts | 15 +++------------ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DepositController.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DepositController.java index 863f79a96..fdc266bfc 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DepositController.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DepositController.java @@ -53,7 +53,12 @@ public class DepositController extends BaseController { ResponseEntity> createDoi(@RequestBody DepositRequest depositRequest, @ClaimedAuthorities(claims = {Authorities.ADMIN, Authorities.MANAGER, Authorities.USER, Authorities.ANONYMOUS}) Principal principal) { try { Doi doi = this.depositManager.deposit(depositRequest, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully created DOI for Data Datamanagement Plan in question.").payload(doi)); + if(doi != null){ + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE).message("Successfully created DOI for Data Datamanagement Plan in question.").payload(doi)); + } + else{ + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to create DOI for the Data Management Plan")); + } } catch (Exception e) { logger.error(e.getMessage(), e); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message("Failed to create DOI for the Data Management Plan: " + e.getMessage())); diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java index a5e05da30..982b7d399 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/DepositManager.java @@ -41,7 +41,10 @@ public class DepositManager { List reposConfigModel = new ArrayList<>(); for (RepositoryDeposit r: this.repositories) { RepositoryConfig repoModel = new RepositoryConfig(); - reposConfigModel.add(repoModel.toModel(r.getConfiguration())); + RepositoryDepositConfiguration repoConf = r.getConfiguration(); + if(repoConf != null) { + reposConfigModel.add(repoModel.toModel(repoConf)); + } } return reposConfigModel; } diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-deposit-dialog/dmp-deposit-dialog.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-deposit-dialog/dmp-deposit-dialog.component.ts index cf0ddf001..5254b633b 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-deposit-dialog/dmp-deposit-dialog.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-deposit-dialog/dmp-deposit-dialog.component.ts @@ -83,10 +83,7 @@ export class DmpDepositDialogComponent extends BaseComponent implements OnInit { .subscribe(doi =>{ this.onDOICallbackSuccess(); this.outputRepos.push(doi); - this.inputRepos = this.inputRepos.filter(function(x) { return x.repositoryId !== repo.repositoryId; }); - if(this.inputRepos.length == 0){ - this.close(); - } + this.close(); }, error => this.onDOICallbackError(error)); break; } @@ -99,10 +96,7 @@ export class DmpDepositDialogComponent extends BaseComponent implements OnInit { .subscribe(doi =>{ this.onDOICallbackSuccess(); this.outputRepos.push(doi); - this.inputRepos = this.inputRepos.filter(function(x) { return x.repositoryId !== repo.repositoryId; }); - if(this.inputRepos.length == 0){ - this.close(); - } + this.close(); }, error => this.onDOICallbackError(error)); } } @@ -129,10 +123,7 @@ export class DmpDepositDialogComponent extends BaseComponent implements OnInit { .subscribe(doi =>{ this.onDOICallbackSuccess(); this.outputRepos.push(doi); - this.inputRepos = this.inputRepos.filter(function(x) { return x.repositoryId !== repo.repositoryId; }); - if(this.inputRepos.length == 0){ - this.close(); - } + this.close(); }, error => this.onDOICallbackError(error)); }); this.oauthLock = true;