From 60b7d82d4756c490acc208ffbf3ece66db53f4ab Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Fri, 30 Jun 2023 11:27:14 +0200 Subject: [PATCH] bug fix --- .../community/CommunityApiController.java | 18 +++++++++--------- .../openaire/community/CommunityService.java | 1 + .../importer/CommunityImporterController.java | 9 +++++++-- .../importer/CommunityImporterService.java | 9 +++++++-- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiController.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiController.java index e2c48fb0..f338edf4 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiController.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiController.java @@ -541,7 +541,7 @@ public class CommunityApiController { return communityService.getPropagationOrganizationCommunityMap(); } - @RequestMapping(value = "/community/{communityId}/propagationOrganizations", produces = { + @RequestMapping(value = "/community/{id}/propagationOrganizations", produces = { "application/json" }, method = RequestMethod.GET) @Operation(summary = "return the propagation organizations of a community", description = "return the propagation organizations of a community", tags = { @@ -552,11 +552,11 @@ public class CommunityApiController { @ApiResponse(responseCode = "404", description = "not found"), @ApiResponse(responseCode = "500", description = "unexpected error") }) - public Set getPropagationOrganizationsForCommunity(@PathVariable final String communityId) throws CommunityException { - return communityService.getPropagationOrganizationsForCommunity(communityId); + public Set getPropagationOrganizationsForCommunity(@PathVariable final String id) throws CommunityException { + return communityService.getPropagationOrganizationsForCommunity(id); } - @RequestMapping(value = "/community/{communityId}/propagationOrganizations", produces = { + @RequestMapping(value = "/community/{id}/propagationOrganizations", produces = { "application/json" }, method = RequestMethod.POST) @Operation(summary = "add an organization to the propagationOrganizationCommunityMap", description = "add an organization to the propagationOrganizationCommunityMap", tags = { @@ -567,12 +567,12 @@ public class CommunityApiController { @ApiResponse(responseCode = "404", description = "not found"), @ApiResponse(responseCode = "500", description = "unexpected error") }) - public Set addPropagationOrganizationForCommunity(@PathVariable final String communityId, + public Set addPropagationOrganizationForCommunity(@PathVariable final String id, @RequestParam final String organizationId) throws CommunityException { - return communityService.addPropagationOrganizationForCommunity(communityId, organizationId); + return communityService.addPropagationOrganizationForCommunity(id, organizationId); } - @RequestMapping(value = "/community/{communityId}/propagationOrganizations", produces = { + @RequestMapping(value = "/community/{id}/propagationOrganizations", produces = { "application/json" }, method = RequestMethod.DELETE) @Operation(summary = "delete an organization to the propagationOrganizationCommunityMap", description = "delete an organization to the propagationOrganizationCommunityMap", tags = { @@ -583,9 +583,9 @@ public class CommunityApiController { @ApiResponse(responseCode = "404", description = "not found"), @ApiResponse(responseCode = "500", description = "unexpected error") }) - public Set removePropagationOrganizationForCommunity(@PathVariable final String communityId, + public Set removePropagationOrganizationForCommunity(@PathVariable final String id, @RequestParam final String organizationId) throws CommunityException { - return communityService.removePropagationOrganizationForCommunity(communityId, organizationId); + return communityService.removePropagationOrganizationForCommunity(id, organizationId); } } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityService.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityService.java index 62d33b26..3f966c3d 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityService.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityService.java @@ -52,6 +52,7 @@ public class CommunityService { // TODO: Verificare Tickets: #8835, #8854, #6483, #3259, #3494 // L'IMPORT DI ALCUNI PROGETTI FALLISCE perche' non hanno openaireID + // L'IMPORT DI ALCUNE ORGS DAL PROVISION WF FALLISCE perche' il communityID non esiste @Autowired private DbCommunityRepository dbCommunityRepository; diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterController.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterController.java index 4dc1917e..a8461754 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterController.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterController.java @@ -65,8 +65,13 @@ public class CommunityImporterController { @GetMapping("/community_importer/propagationOrgs") public List importPropagationOrgs(@RequestParam final String profileId, @RequestParam(required = false, defaultValue = "false") final boolean simulation) throws Exception { - final String xml = isClient.getProfile(profileId); - return importer.importPropagationOrganizationsFromProfile(xml, simulation); + try { + final String xml = isClient.getProfile(profileId); + return importer.importPropagationOrganizationsFromProfile(xml, simulation); + } catch (final Throwable e) { + log.error("Error importing communities", e); + throw new CommunityException(e.getMessage()); + } } private Map getContextMap() throws CommunityException { diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java index 5c3431d1..16702dfd 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/importer/CommunityImporterService.java @@ -107,7 +107,6 @@ public class CommunityImporterService { private static final Log log = LogFactory.getLog(CommunityImporterService.class); - @Transactional public List importPropagationOrganizationsFromProfile(final String xml, final boolean simulation) throws Exception { final String json = DocumentHelper.parseText(xml) .selectSingleNode("//NODE[@name='setPropagationOrganizationCommunityMap']//PARAM[@name='parameterValue']") @@ -121,7 +120,13 @@ public class CommunityImporterService { .collect(Collectors.toList()); if (!simulation) { - dbOrganizationRepository.saveAll(list); + list.forEach(o -> { + try { + dbOrganizationRepository.save(o); + } catch (final Throwable e) { + log.error("ERROR saving org: " + o); + } + }); } return list;