diff --git a/pom.xml b/pom.xml
index e1adfc8..02b148d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
eu.dnetlib
uoa-monitor-service
- 1.0.2-SNAPSHOT
+ 1.0.3-SNAPSHOT
war
uoa-monitor-service
diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/controllers/IndicatorController.java b/src/main/java/eu/dnetlib/uoamonitorservice/controllers/IndicatorController.java
index aafc645..0caf168 100644
--- a/src/main/java/eu/dnetlib/uoamonitorservice/controllers/IndicatorController.java
+++ b/src/main/java/eu/dnetlib/uoamonitorservice/controllers/IndicatorController.java
@@ -9,13 +9,10 @@ import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Field;
-import java.net.URLEncoder;
import java.util.*;
@RestController
@@ -56,7 +53,7 @@ public class IndicatorController {
@PathVariable("topicId") String topicId,
@PathVariable("categoryId") String categoryId,
@PathVariable("subcategoryId") String subcategoryId,
- @RequestBody List indicators) throws UnsupportedEncodingException {
+ @RequestBody List> sections) throws UnsupportedEncodingException {
log.debug("save bulk indicators");
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId);
@@ -64,42 +61,45 @@ public class IndicatorController {
Date date = new Date();
- createSectionsAndSaveBulk(date, indicators, stakeholder, topicId, categoryId, subcategoryId);
+ createSectionsAndSaveBulk(date, sections, stakeholder, topicId, categoryId, subcategoryId);
// createSectionAndSaveBulk(date, "number", "Numbers imported from file", number_indicators, stakeholder, topicId, categoryId, subcategoryId);
return stakeholderController.setFullEntities(stakeholder, rolesUtils.getRoles());
}
- private void createSectionsAndSaveBulk(Date date, List new_indicators,
+ private void createSectionsAndSaveBulk(Date date, List> old_sections,
Stakeholder stakeholder, String topicId, String categoryId, String subcategoryId) throws UnsupportedEncodingException {
- Section chart_section = null;
- Section number_section = null;
+ for(Section section : old_sections) {
+ Section chart_section = null;
+ Section number_section = null;
- List chart_indicators = null;
- List number_indicators = null;
+ List chart_indicators = null;
+ List number_indicators = null;
- for(Indicator indicator : new_indicators) {
- if(indicator.getType().equals("chart")) {
- if(chart_section == null) {
- chart_section = createSection(chart_section, "chart", "Charts imported from file", date, stakeholder, topicId, categoryId, subcategoryId);
- chart_indicators = chart_section.getIndicators();
- }
- saveIndicatorAndAddInSection(indicator, date, stakeholder, chart_section, chart_indicators);
-
- } else if(indicator.getType().equals("number")) {
- if(number_section == null) {
- number_section = createSection(number_section, "number", "Numbers imported from file", date, stakeholder, topicId, categoryId, subcategoryId);
- number_indicators = number_section.getIndicators();
- }
- saveIndicatorAndAddInSection(indicator, date, stakeholder, number_section, number_indicators);
+ if(section.getType().equals("chart")) {
+ chart_section = createSection(chart_section, "chart", (section.getTitle() != null ? section.getTitle() : "Charts")+" imported from file", date, stakeholder, topicId, categoryId, subcategoryId);
+ chart_indicators = chart_section.getIndicators();
+ } else if(section.getType().equals("number")) {
+ number_section = createSection(number_section, "number", (section.getTitle() != null ? section.getTitle() : "Numbers")+ " imported from file", date, stakeholder, topicId, categoryId, subcategoryId);
+ number_indicators = number_section.getIndicators();
}
- }
- if(chart_section != null) {
- sectionDAO.save(chart_section);
- }
- if(number_section != null) {
- sectionDAO.save(number_section);
+ List indicators = section.getIndicators();
+ for (Indicator indicator : indicators) {
+ if (indicator.getType().equals("chart")) {
+ saveIndicatorAndAddInSection(indicator, date, stakeholder, chart_section, chart_indicators);
+
+ } else if (indicator.getType().equals("number")) {
+ saveIndicatorAndAddInSection(indicator, date, stakeholder, number_section, number_indicators);
+ }
+ }
+
+ if (chart_section != null) {
+ sectionDAO.save(chart_section);
+ }
+ if (number_section != null) {
+ sectionDAO.save(number_section);
+ }
}
}
@@ -112,7 +112,7 @@ public class IndicatorController {
section.setUpdateDate(date);
section.setCreationDate(date);
section.setIndicators(new ArrayList<>());
- sectionController.saveSection(stakeholder.getId(), topicId, categoryId, subcategoryId, "-1", section);
+ section = sectionController.saveSection(stakeholder.getId(), topicId, categoryId, subcategoryId, "-1", section);
return section;
}