Revert properties. Remove some comments. Remove mongodb DAOs. Move primitives classes and enums to new package primitives.
This commit is contained in:
parent
76c39d6eb3
commit
1158b676e4
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.controllers;
|
package eu.dnetlib.uoamonitorservice.controllers;
|
||||||
|
|
||||||
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils;
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils;
|
||||||
import eu.dnetlib.uoamonitorservice.dao.*;
|
import eu.dnetlib.uoamonitorservice.dao.CategoryDAO;
|
||||||
|
import eu.dnetlib.uoamonitorservice.dao.StakeholderDAO;
|
||||||
|
import eu.dnetlib.uoamonitorservice.dao.SubCategoryDAO;
|
||||||
|
import eu.dnetlib.uoamonitorservice.dao.TopicDAO;
|
||||||
import eu.dnetlib.uoamonitorservice.entities.*;
|
import eu.dnetlib.uoamonitorservice.entities.*;
|
||||||
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
|
||||||
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
|
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
@ -45,7 +48,7 @@ public class CategoryController {
|
||||||
|
|
||||||
List<String> subCategories = new ArrayList<>();
|
List<String> subCategories = new ArrayList<>();
|
||||||
List<SubCategory> subCategoriesFull = new ArrayList<>();
|
List<SubCategory> subCategoriesFull = new ArrayList<>();
|
||||||
for(SubCategory<Section<Indicator>> subCategory : categoryFull.getSubCategories()) {
|
for (SubCategory<Section<Indicator>> subCategory : categoryFull.getSubCategories()) {
|
||||||
SubCategory<Section<Indicator>> subcategoryFull = subCategoryController.buildSubCategory(subCategory);
|
SubCategory<Section<Indicator>> subcategoryFull = subCategoryController.buildSubCategory(subCategory);
|
||||||
subCategoriesFull.add(subcategoryFull);
|
subCategoriesFull.add(subcategoryFull);
|
||||||
subCategories.add(subcategoryFull.getId());
|
subCategories.add(subcategoryFull.getId());
|
||||||
|
@ -72,28 +75,28 @@ public class CategoryController {
|
||||||
@PathVariable("topicId") String topicId,
|
@PathVariable("topicId") String topicId,
|
||||||
@RequestBody Category<SubCategory> categoryFull) {
|
@RequestBody Category<SubCategory> categoryFull) {
|
||||||
log.debug("save category");
|
log.debug("save category");
|
||||||
log.debug("Alias: "+categoryFull.getAlias() + " - Id: "+categoryFull.getId() + " - Stakeholder: "+stakeholderId + " - Topic: "+topicId);
|
log.debug("Alias: " + categoryFull.getAlias() + " - Id: " + categoryFull.getId() + " - Stakeholder: " + stakeholderId + " - Topic: " + topicId);
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
if(stakeholder != null) {
|
if (stakeholder != null) {
|
||||||
if(!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
if (!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("Save Category: You are not authorized to update stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("Save Category: You are not authorized to update stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Category<String> oldCategory = null;
|
Category<String> oldCategory = null;
|
||||||
if(categoryFull.getId() != null) {
|
if (categoryFull.getId() != null) {
|
||||||
oldCategory = categoryDAO.findById(categoryFull.getId());
|
oldCategory = categoryDAO.findById(categoryFull.getId());
|
||||||
if(oldCategory == null) {
|
if (oldCategory == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("save category: Category with id: " + categoryFull.getId() + " not found");
|
throw new EntityNotFoundException("save category: Category with id: " + categoryFull.getId() + " not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Topic<String> topic = topicDAO.findById(topicId);
|
Topic<String> topic = topicDAO.findById(topicId);
|
||||||
if(topic != null) {
|
if (topic != null) {
|
||||||
if(stakeholder.getTopics().contains(topicId)) {
|
if (stakeholder.getTopics().contains(topicId)) {
|
||||||
Category<String> category = new Category<>(categoryFull);
|
Category<String> category = new Category<>(categoryFull);
|
||||||
|
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
|
@ -103,7 +106,7 @@ public class CategoryController {
|
||||||
List<String> subCategories = new ArrayList<>();
|
List<String> subCategories = new ArrayList<>();
|
||||||
|
|
||||||
// if category not exists (no id), create a new default subcategory, identical to category
|
// if category not exists (no id), create a new default subcategory, identical to category
|
||||||
if(categoryFull.getId() == null) {
|
if (categoryFull.getId() == null) {
|
||||||
category.setCreationDate(date);
|
category.setCreationDate(date);
|
||||||
categoryFull.setCreationDate(date);
|
categoryFull.setCreationDate(date);
|
||||||
|
|
||||||
|
@ -115,15 +118,15 @@ public class CategoryController {
|
||||||
List<SubCategory> subCategoriesFull = categoryFull.getSubCategories();
|
List<SubCategory> subCategoriesFull = categoryFull.getSubCategories();
|
||||||
subCategoriesFull.add(subCategory);
|
subCategoriesFull.add(subCategory);
|
||||||
|
|
||||||
for(SubCategory oldSubCategory : subCategoriesFull) {
|
for (SubCategory oldSubCategory : subCategoriesFull) {
|
||||||
subCategories.add(oldSubCategory.getId());
|
subCategories.add(oldSubCategory.getId());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for(String subCategoryId : oldCategory.getSubCategories()) {
|
for (String subCategoryId : oldCategory.getSubCategories()) {
|
||||||
SubCategory subCategory = subCategoryDAO.findById(subCategoryId);
|
SubCategory subCategory = subCategoryDAO.findById(subCategoryId);
|
||||||
if (subCategory == null) {
|
if (subCategory == null) {
|
||||||
// EXCEPTION - SubCategory not found
|
// EXCEPTION - SubCategory not found
|
||||||
throw new EntityNotFoundException("Save category: SubCategory with id: "+subCategoryId+" not found (subcategory exists in category: "+category.getId()+")");
|
throw new EntityNotFoundException("Save category: SubCategory with id: " + subCategoryId + " not found (subcategory exists in category: " + category.getId() + ")");
|
||||||
}
|
}
|
||||||
subCategories.add(subCategory.getId());
|
subCategories.add(subCategory.getId());
|
||||||
}
|
}
|
||||||
|
@ -131,8 +134,8 @@ public class CategoryController {
|
||||||
|
|
||||||
category.setSubCategories(subCategories);
|
category.setSubCategories(subCategories);
|
||||||
|
|
||||||
if(stakeholder.getDefaultId() == null) {
|
if (stakeholder.getDefaultId() == null) {
|
||||||
if(categoryFull.getId() == null) {
|
if (categoryFull.getId() == null) {
|
||||||
categoryDAO.save(category);
|
categoryDAO.save(category);
|
||||||
onSaveDefaultCategory(category, topicId);
|
onSaveDefaultCategory(category, topicId);
|
||||||
} else {
|
} else {
|
||||||
|
@ -145,27 +148,24 @@ public class CategoryController {
|
||||||
|
|
||||||
List<String> categories = topic.getCategories();
|
List<String> categories = topic.getCategories();
|
||||||
int index = categories.indexOf(category.getId());
|
int index = categories.indexOf(category.getId());
|
||||||
if(index == -1) {
|
if (index == -1) {
|
||||||
categories.add(category.getId());
|
categories.add(category.getId());
|
||||||
topicDAO.save(topic);
|
topicDAO.save(topic);
|
||||||
log.debug("Category saved!");
|
log.debug("Category saved!");
|
||||||
|
|
||||||
categoryFull.setId(category.getId());
|
categoryFull.setId(category.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
subCategories = null;
|
|
||||||
category = null;
|
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
||||||
throw new PathNotValidException("Save category: Topic with id: "+topicId+" not found in Stakeholder: "+stakeholderId);
|
throw new PathNotValidException("Save category: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found
|
// EXCEPTION - Topic not found
|
||||||
throw new EntityNotFoundException("Save category: Topic with id: "+topicId+" not found");
|
throw new EntityNotFoundException("Save category: Topic with id: " + topicId + " not found");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Stakeholder not found
|
// EXCEPTION - Stakeholder not found
|
||||||
throw new EntityNotFoundException("Save category: Stakeholder with id: "+stakeholderId+" not found");
|
throw new EntityNotFoundException("Save category: Stakeholder with id: " + stakeholderId + " not found");
|
||||||
}
|
}
|
||||||
return categoryFull;
|
return categoryFull;
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,7 @@ public class CategoryController {
|
||||||
log.debug("On save default category");
|
log.debug("On save default category");
|
||||||
|
|
||||||
List<Topic> topics = topicDAO.findByDefaultId(topicId);
|
List<Topic> topics = topicDAO.findByDefaultId(topicId);
|
||||||
for(Topic topic : topics) {
|
for (Topic topic : topics) {
|
||||||
Category categoryNew = new Category();
|
Category categoryNew = new Category();
|
||||||
categoryNew.copyFromDefault(category);
|
categoryNew.copyFromDefault(category);
|
||||||
|
|
||||||
|
@ -195,28 +195,24 @@ public class CategoryController {
|
||||||
|
|
||||||
List<Category> categories = categoryDAO.findByDefaultId(category.getId());
|
List<Category> categories = categoryDAO.findByDefaultId(category.getId());
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
for(Category categoryBasedOnDefault : categories) {
|
for (Category categoryBasedOnDefault : categories) {
|
||||||
if(category.getName() != null && !category.getName().equals(categoryBasedOnDefault.getName())
|
if (category.getName() != null && !category.getName().equals(categoryBasedOnDefault.getName())
|
||||||
&& (oldCategory.getName() == null || oldCategory.getName().equals(categoryBasedOnDefault.getName()))) {
|
&& (oldCategory.getName() == null || oldCategory.getName().equals(categoryBasedOnDefault.getName()))) {
|
||||||
|
|
||||||
categoryBasedOnDefault.setName(category.getName());
|
categoryBasedOnDefault.setName(category.getName());
|
||||||
categoryBasedOnDefault.setAlias(category.getAlias());
|
categoryBasedOnDefault.setAlias(category.getAlias());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
if(category.getDescription() != null && !category.getDescription().equals(categoryBasedOnDefault.getDescription())
|
if (category.getDescription() != null && !category.getDescription().equals(categoryBasedOnDefault.getDescription())
|
||||||
&& (oldCategory.getDescription() == null || oldCategory.getDescription().equals(categoryBasedOnDefault.getDescription()))) {
|
&& (oldCategory.getDescription() == null || oldCategory.getDescription().equals(categoryBasedOnDefault.getDescription()))) {
|
||||||
|
|
||||||
categoryBasedOnDefault.setDescription(category.getDescription());
|
categoryBasedOnDefault.setDescription(category.getDescription());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!changed) {
|
if (!changed) {
|
||||||
// break;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// categoryBasedOnDefault.setName(category.getName());
|
|
||||||
// categoryBasedOnDefault.setDescription(category.getDescription());
|
|
||||||
categoryBasedOnDefault.setUpdateDate(category.getUpdateDate());
|
categoryBasedOnDefault.setUpdateDate(category.getUpdateDate());
|
||||||
categoryDAO.save(categoryBasedOnDefault);
|
categoryDAO.save(categoryBasedOnDefault);
|
||||||
}
|
}
|
||||||
|
@ -229,34 +225,34 @@ public class CategoryController {
|
||||||
@PathVariable("categoryId") String categoryId,
|
@PathVariable("categoryId") String categoryId,
|
||||||
@RequestParam(required = false) String children) {
|
@RequestParam(required = false) String children) {
|
||||||
log.debug("delete category");
|
log.debug("delete category");
|
||||||
log.debug("Id: "+categoryId + " - Stakeholder: "+stakeholderId + " - Topic: "+topicId);
|
log.debug("Id: " + categoryId + " - Stakeholder: " + stakeholderId + " - Topic: " + topicId);
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
if(stakeholder != null) {
|
if (stakeholder != null) {
|
||||||
if(!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
if (!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("Delete category: You are not authorized to update stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("Delete category: You are not authorized to update stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Topic<String> topic = topicDAO.findById(topicId);
|
Topic<String> topic = topicDAO.findById(topicId);
|
||||||
if(topic != null) {
|
if (topic != null) {
|
||||||
if(stakeholder.getTopics().contains(topicId)) {
|
if (stakeholder.getTopics().contains(topicId)) {
|
||||||
|
|
||||||
Category<String> category = categoryDAO.findById(categoryId);
|
Category<String> category = categoryDAO.findById(categoryId);
|
||||||
if(category != null) {
|
if (category != null) {
|
||||||
|
|
||||||
if(category.getDefaultId() != null && !rolesUtils.hasCreateAndDeleteAuthority(stakeholder.getType())) {
|
if (category.getDefaultId() != null && !rolesUtils.hasCreateAndDeleteAuthority(stakeholder.getType())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("Delete category: You are not authorized to delete a default Category in stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("Delete category: You are not authorized to delete a default Category in stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<String> categories = topic.getCategories();
|
List<String> categories = topic.getCategories();
|
||||||
int index = categories.indexOf(categoryId);
|
int index = categories.indexOf(categoryId);
|
||||||
if(index != -1) {
|
if (index != -1) {
|
||||||
// this category belongs in default profile
|
// this category belongs in default profile
|
||||||
if(topic.getDefaultId() == null && children != null) {
|
if (topic.getDefaultId() == null && children != null) {
|
||||||
onDeleteDefaultCategory(categoryId, topicId, children);
|
onDeleteDefaultCategory(categoryId, topicId, children);
|
||||||
}
|
}
|
||||||
subCategoryController.deleteTree(category);
|
subCategoryController.deleteTree(category);
|
||||||
|
@ -267,42 +263,42 @@ public class CategoryController {
|
||||||
log.debug("Category deleted!");
|
log.debug("Category deleted!");
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
||||||
throw new PathNotValidException("Delete category: Category with id: "+categoryId+" not found in Topic: "+topicId);
|
throw new PathNotValidException("Delete category: Category with id: " + categoryId + " not found in Topic: " + topicId);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Delete category: Category with id: "+categoryId+" not found");
|
throw new EntityNotFoundException("Delete category: Category with id: " + categoryId + " not found");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
||||||
throw new PathNotValidException("Delete category: Topic with id: "+topicId+" not found in Stakeholder: "+stakeholderId);
|
throw new PathNotValidException("Delete category: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found
|
// EXCEPTION - Topic not found
|
||||||
throw new EntityNotFoundException("Delete category: Topic with id: "+topicId+" not found");
|
throw new EntityNotFoundException("Delete category: Topic with id: " + topicId + " not found");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Stakeholder not found
|
// EXCEPTION - Stakeholder not found
|
||||||
throw new EntityNotFoundException("Delete category: Stakeholder with id: "+stakeholderId+" not found");
|
throw new EntityNotFoundException("Delete category: Stakeholder with id: " + stakeholderId + " not found");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean onDeleteDefaultCategory(String defaultCategoryId, String defaultTopicId, String children) {
|
public boolean onDeleteDefaultCategory(String defaultCategoryId, String defaultTopicId, String children) {
|
||||||
if(children.equals("delete")) {
|
if (children.equals("delete")) {
|
||||||
List<Topic> topics = topicDAO.findByDefaultId(defaultTopicId);
|
List<Topic> topics = topicDAO.findByDefaultId(defaultTopicId);
|
||||||
List<Category> categories = categoryDAO.findByDefaultId(defaultCategoryId);
|
List<Category> categories = categoryDAO.findByDefaultId(defaultCategoryId);
|
||||||
|
|
||||||
for(Topic topic : topics) {
|
for (Topic topic : topics) {
|
||||||
Iterator<Category> categoriesIterator = categories.iterator();
|
Iterator<Category> categoriesIterator = categories.iterator();
|
||||||
while(categoriesIterator.hasNext()) {
|
while (categoriesIterator.hasNext()) {
|
||||||
Category category = categoriesIterator.next();
|
Category category = categoriesIterator.next();
|
||||||
|
|
||||||
String categoryId = category.getId();
|
String categoryId = category.getId();
|
||||||
|
|
||||||
if(topic.getCategories() != null && topic.getCategories().contains(categoryId)) {
|
if (topic.getCategories() != null && topic.getCategories().contains(categoryId)) {
|
||||||
categoriesIterator.remove();
|
categoriesIterator.remove();
|
||||||
|
|
||||||
topic.getCategories().remove(categoryId);
|
topic.getCategories().remove(categoryId);
|
||||||
|
@ -311,21 +307,21 @@ public class CategoryController {
|
||||||
subCategoryController.deleteTree(category);
|
subCategoryController.deleteTree(category);
|
||||||
|
|
||||||
categoryDAO.delete(categoryId);
|
categoryDAO.delete(categoryId);
|
||||||
log.debug("Category with id: "+categoryId+" deleted!");
|
log.debug("Category with id: " + categoryId + " deleted!");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(children.equals("disconnect")) {
|
} else if (children.equals("disconnect")) {
|
||||||
List<Category> categories = categoryDAO.findByDefaultId(defaultCategoryId);
|
List<Category> categories = categoryDAO.findByDefaultId(defaultCategoryId);
|
||||||
for(Category category : categories) {
|
for (Category category : categories) {
|
||||||
subCategoryController.disConnectTree(category);
|
subCategoryController.disConnectTree(category);
|
||||||
|
|
||||||
category.setDefaultId(null);
|
category.setDefaultId(null);
|
||||||
categoryDAO.save(category);
|
categoryDAO.save(category);
|
||||||
|
|
||||||
log.debug("DefaultId for Category with id: "+category.getId()+" empty!");
|
log.debug("DefaultId for Category with id: " + category.getId() + " empty!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -334,10 +330,10 @@ public class CategoryController {
|
||||||
@PreAuthorize("isAuthenticated()")
|
@PreAuthorize("isAuthenticated()")
|
||||||
@RequestMapping(value = "/{stakeholderId}/{topicId}/reorder", method = RequestMethod.POST)
|
@RequestMapping(value = "/{stakeholderId}/{topicId}/reorder", method = RequestMethod.POST)
|
||||||
public List<Category> reorderCategories(@PathVariable("stakeholderId") String stakeholderId,
|
public List<Category> reorderCategories(@PathVariable("stakeholderId") String stakeholderId,
|
||||||
@PathVariable("topicId") String topicId,
|
@PathVariable("topicId") String topicId,
|
||||||
@RequestBody List<String> categories) {
|
@RequestBody List<String> categories) {
|
||||||
log.debug("reorder categories");
|
log.debug("reorder categories");
|
||||||
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId);
|
log.debug("Stakeholder: " + stakeholderId + " - Topic: " + topicId);
|
||||||
|
|
||||||
Topic<String> topic = checkForExceptions(stakeholderId, topicId);
|
Topic<String> topic = checkForExceptions(stakeholderId, topicId);
|
||||||
|
|
||||||
|
@ -350,9 +346,9 @@ public class CategoryController {
|
||||||
topic.setCategories(categories);
|
topic.setCategories(categories);
|
||||||
|
|
||||||
List<Category> categoriesFull = new ArrayList<>();
|
List<Category> categoriesFull = new ArrayList<>();
|
||||||
for(String categoryId : categories) {
|
for (String categoryId : categories) {
|
||||||
Category category = categoryDAO.findById(categoryId);
|
Category category = categoryDAO.findById(categoryId);
|
||||||
if(category == null) {
|
if (category == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Reorder Categories: Category with id: " + categoryId + " not found");
|
throw new EntityNotFoundException("Reorder Categories: Category with id: " + categoryId + " not found");
|
||||||
}
|
}
|
||||||
|
@ -368,18 +364,18 @@ public class CategoryController {
|
||||||
@PreAuthorize("isAuthenticated()")
|
@PreAuthorize("isAuthenticated()")
|
||||||
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/change-visibility", method = RequestMethod.POST)
|
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/change-visibility", method = RequestMethod.POST)
|
||||||
public Category changeCategoryVisibility(@PathVariable("stakeholderId") String stakeholderId,
|
public Category changeCategoryVisibility(@PathVariable("stakeholderId") String stakeholderId,
|
||||||
@PathVariable("topicId") String topicId,
|
@PathVariable("topicId") String topicId,
|
||||||
@PathVariable("categoryId") String categoryId,
|
@PathVariable("categoryId") String categoryId,
|
||||||
@RequestParam("visibility") Visibility visibility, @RequestParam(required = false) Boolean propagate) {
|
@RequestParam("visibility") Visibility visibility, @RequestParam(required = false) Boolean propagate) {
|
||||||
log.debug("change category visibility: "+visibility + " - toggle propagate: "+((propagate != null && propagate) ? "true" : "false"));
|
log.debug("change category visibility: " + visibility + " - toggle propagate: " + ((propagate != null && propagate) ? "true" : "false"));
|
||||||
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId);
|
log.debug("Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId);
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
if (stakeholder != null) {
|
if (stakeholder != null) {
|
||||||
if(!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
if (!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("Toggle category: You are not authorized to update stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("Toggle category: You are not authorized to update stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Topic<String> topic = topicDAO.findById(topicId);
|
Topic<String> topic = topicDAO.findById(topicId);
|
||||||
|
@ -389,19 +385,19 @@ public class CategoryController {
|
||||||
return changeVisibilityTree(categoryId, visibility, propagate);
|
return changeVisibilityTree(categoryId, visibility, propagate);
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
||||||
throw new PathNotValidException("Toggle category: Category with id: "+categoryId+" not found in Topic: "+topicId);
|
throw new PathNotValidException("Toggle category: Category with id: " + categoryId + " not found in Topic: " + topicId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
||||||
throw new PathNotValidException("Toggle category: Topic with id: "+topicId+" not found in Stakeholder: "+stakeholderId);
|
throw new PathNotValidException("Toggle category: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Topic not found
|
// EXCEPTION - Topic not found
|
||||||
throw new EntityNotFoundException("Toggle category: Topic with id: "+topicId+" not found");
|
throw new EntityNotFoundException("Toggle category: Topic with id: " + topicId + " not found");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Stakeholder not found
|
// EXCEPTION - Stakeholder not found
|
||||||
throw new EntityNotFoundException("Toggle category: Stakeholder with id: "+stakeholderId+" not found");
|
throw new EntityNotFoundException("Toggle category: Stakeholder with id: " + stakeholderId + " not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -409,13 +405,13 @@ public class CategoryController {
|
||||||
Category<String> category = categoryDAO.findById(categoryId);
|
Category<String> category = categoryDAO.findById(categoryId);
|
||||||
if (category == null) {
|
if (category == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Change category visibility: Category with id: "+categoryId+" not found");
|
throw new EntityNotFoundException("Change category visibility: Category with id: " + categoryId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
Category<SubCategory> categoryFull = new Category(category);
|
Category<SubCategory> categoryFull = new Category(category);
|
||||||
List<SubCategory> subCategoriesFull = new ArrayList<>();
|
List<SubCategory> subCategoriesFull = new ArrayList<>();
|
||||||
|
|
||||||
if(propagate != null && propagate) {
|
if (propagate != null && propagate) {
|
||||||
for (String subCategoryId : category.getSubCategories()) {
|
for (String subCategoryId : category.getSubCategories()) {
|
||||||
subCategoriesFull.add(subCategoryController.changeVisibilityTree(subCategoryId, visibility, propagate));
|
subCategoriesFull.add(subCategoryController.changeVisibilityTree(subCategoryId, visibility, propagate));
|
||||||
}
|
}
|
||||||
|
@ -436,36 +432,36 @@ public class CategoryController {
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
if(stakeholder == null) {
|
if (stakeholder == null) {
|
||||||
// EXCEPTION - Stakeholder not found
|
// EXCEPTION - Stakeholder not found
|
||||||
throw new EntityNotFoundException("checkForExceptions category: Stakeholder with id: " + stakeholderId + " not found");
|
throw new EntityNotFoundException("checkForExceptions category: Stakeholder with id: " + stakeholderId + " not found");
|
||||||
}
|
}
|
||||||
if(!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
if (!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("checkForExceptions category: You are not authorized to update stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("checkForExceptions category: You are not authorized to update stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Topic<String> topic = topicDAO.findById(topicId);
|
Topic<String> topic = topicDAO.findById(topicId);
|
||||||
if(topic == null) {
|
if (topic == null) {
|
||||||
// EXCEPTION - Topic not found
|
// EXCEPTION - Topic not found
|
||||||
throw new EntityNotFoundException("checkForExceptions category: Topic with id: "+topicId+" not found");
|
throw new EntityNotFoundException("checkForExceptions category: Topic with id: " + topicId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!stakeholder.getTopics().contains(topicId)) {
|
if (!stakeholder.getTopics().contains(topicId)) {
|
||||||
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
||||||
throw new PathNotValidException("checkForExceptions category: Topic with id: "+topicId+" not found in Stakeholder: "+stakeholderId);
|
throw new PathNotValidException("checkForExceptions category: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return topic;
|
return topic;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteTree(Topic topic) {
|
public void deleteTree(Topic topic) {
|
||||||
List<String> categories = topic.getCategories();
|
List<String> categories = topic.getCategories();
|
||||||
for(String categoryId : categories) {
|
for (String categoryId : categories) {
|
||||||
Category category = categoryDAO.findById(categoryId);
|
Category category = categoryDAO.findById(categoryId);
|
||||||
if (category == null) {
|
if (category == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Category delete tree: Category with id: "+categoryId+" not found (category exists in topic: "+topic.getId()+")");
|
throw new EntityNotFoundException("Category delete tree: Category with id: " + categoryId + " not found (category exists in topic: " + topic.getId() + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
subCategoryController.deleteTree(category);
|
subCategoryController.deleteTree(category);
|
||||||
|
@ -476,11 +472,11 @@ public class CategoryController {
|
||||||
|
|
||||||
public void disConnectTree(Topic topic) {
|
public void disConnectTree(Topic topic) {
|
||||||
List<String> categories = topic.getCategories();
|
List<String> categories = topic.getCategories();
|
||||||
for(String categoryId : categories) {
|
for (String categoryId : categories) {
|
||||||
Category category = categoryDAO.findById(categoryId);
|
Category category = categoryDAO.findById(categoryId);
|
||||||
if (category == null) {
|
if (category == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Category disconnect tree: Category with id: "+categoryId+" not found (category exists in topic: "+topic.getId()+")");
|
throw new EntityNotFoundException("Category disconnect tree: Category with id: " + categoryId + " not found (category exists in topic: " + topic.getId() + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
subCategoryController.disConnectTree(category);
|
subCategoryController.disConnectTree(category);
|
||||||
|
|
|
@ -10,7 +10,10 @@ import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@CrossOrigin(origins = "*")
|
@CrossOrigin(origins = "*")
|
||||||
|
@ -27,7 +30,7 @@ public class EmailController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/contact", method = RequestMethod.POST)
|
@RequestMapping(value = "/contact", method = RequestMethod.POST)
|
||||||
public Boolean contact(@RequestBody EmailRecaptcha form) throws InvalidReCaptchaException {
|
public Boolean contact(@RequestBody EmailRecaptcha form) throws InvalidReCaptchaException {
|
||||||
verifyRecaptcha.processResponse(form.getRecaptcha());
|
verifyRecaptcha.processResponse(form.getRecaptcha());
|
||||||
Email email = form.getEmail();
|
Email email = form.getEmail();
|
||||||
return emailSender.send(email.getRecipients(), email.getSubject(), email.getBody(), false);
|
return emailSender.send(email.getRecipients(), email.getSubject(), email.getBody(), false);
|
||||||
|
@ -40,17 +43,17 @@ public class EmailController {
|
||||||
String failureString = "failure";
|
String failureString = "failure";
|
||||||
Map<String, ArrayList<String>> mailResults = new HashMap<>();
|
Map<String, ArrayList<String>> mailResults = new HashMap<>();
|
||||||
boolean bcc = optional.orElse(true);
|
boolean bcc = optional.orElse(true);
|
||||||
for(String userMail:email.getRecipients()){
|
for (String userMail : email.getRecipients()) {
|
||||||
ArrayList<String> sendTo = new ArrayList<>();
|
ArrayList<String> sendTo = new ArrayList<>();
|
||||||
sendTo.add(userMail);
|
sendTo.add(userMail);
|
||||||
boolean success =emailSender.send(sendTo,email.getSubject(),email.getBody(), bcc);
|
boolean success = emailSender.send(sendTo, email.getSubject(), email.getBody(), bcc);
|
||||||
if(success){
|
if (success) {
|
||||||
if(!mailResults.containsKey(successString)) {
|
if (!mailResults.containsKey(successString)) {
|
||||||
mailResults.put(successString, new ArrayList<>());
|
mailResults.put(successString, new ArrayList<>());
|
||||||
}
|
}
|
||||||
mailResults.get(successString).add(userMail);
|
mailResults.get(successString).add(userMail);
|
||||||
} else {
|
} else {
|
||||||
if(!mailResults.containsKey(failureString)) {
|
if (!mailResults.containsKey(failureString)) {
|
||||||
mailResults.put(failureString, new ArrayList<>());
|
mailResults.put(failureString, new ArrayList<>());
|
||||||
}
|
}
|
||||||
mailResults.get(failureString).add(userMail);
|
mailResults.get(failureString).add(userMail);
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
package eu.dnetlib.uoamonitorservice.controllers;
|
package eu.dnetlib.uoamonitorservice.controllers;
|
||||||
|
|
||||||
|
|
||||||
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils;
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils;
|
||||||
import eu.dnetlib.uoamonitorservice.dao.*;
|
import eu.dnetlib.uoamonitorservice.dao.*;
|
||||||
import eu.dnetlib.uoamonitorservice.entities.*;
|
import eu.dnetlib.uoamonitorservice.entities.*;
|
||||||
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
|
||||||
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
|
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.IndicatorPath;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.ReorderEvent;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -51,27 +53,25 @@ public class IndicatorController {
|
||||||
@PreAuthorize("isAuthenticated()")
|
@PreAuthorize("isAuthenticated()")
|
||||||
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/{subcategoryId}/save-bulk", method = RequestMethod.POST)
|
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/{subcategoryId}/save-bulk", method = RequestMethod.POST)
|
||||||
public Stakeholder saveBulkIndicators(@PathVariable("stakeholderId") String stakeholderId,
|
public Stakeholder saveBulkIndicators(@PathVariable("stakeholderId") String stakeholderId,
|
||||||
@PathVariable("topicId") String topicId,
|
@PathVariable("topicId") String topicId,
|
||||||
@PathVariable("categoryId") String categoryId,
|
@PathVariable("categoryId") String categoryId,
|
||||||
@PathVariable("subcategoryId") String subcategoryId,
|
@PathVariable("subcategoryId") String subcategoryId,
|
||||||
@RequestBody List<Section<Indicator>> sections) throws UnsupportedEncodingException {
|
@RequestBody List<Section<Indicator>> sections) throws UnsupportedEncodingException {
|
||||||
log.debug("save bulk indicators");
|
log.debug("save bulk indicators");
|
||||||
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId);
|
log.debug("Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId + " - SubCategory: " + subcategoryId);
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
|
|
||||||
createSectionsAndSaveBulk(date, sections, 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);
|
return stakeholderController.setFullEntities(stakeholder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createSectionsAndSaveBulk(Date date, List<Section<Indicator>> old_sections,
|
private void createSectionsAndSaveBulk(Date date, List<Section<Indicator>> old_sections,
|
||||||
Stakeholder stakeholder, String topicId, String categoryId, String subcategoryId) throws UnsupportedEncodingException {
|
Stakeholder stakeholder, String topicId, String categoryId, String subcategoryId) throws UnsupportedEncodingException {
|
||||||
for(Section<Indicator> section : old_sections) {
|
for (Section<Indicator> section : old_sections) {
|
||||||
if(section == null) {
|
if (section == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,17 +81,17 @@ public class IndicatorController {
|
||||||
List<String> chart_indicators = null;
|
List<String> chart_indicators = null;
|
||||||
List<String> number_indicators = null;
|
List<String> number_indicators = null;
|
||||||
|
|
||||||
if(section.getType().equals("chart")) {
|
if (section.getType().equals("chart")) {
|
||||||
chart_section = createSection(chart_section, "chart", section.getTitle(), date, stakeholder, topicId, categoryId, subcategoryId);
|
chart_section = createSection(chart_section, "chart", section.getTitle(), date, stakeholder, topicId, categoryId, subcategoryId);
|
||||||
chart_indicators = chart_section.getIndicators();
|
chart_indicators = chart_section.getIndicators();
|
||||||
} else if(section.getType().equals("number")) {
|
} else if (section.getType().equals("number")) {
|
||||||
number_section = createSection(number_section, "number", section.getTitle(), date, stakeholder, topicId, categoryId, subcategoryId);
|
number_section = createSection(number_section, "number", section.getTitle(), date, stakeholder, topicId, categoryId, subcategoryId);
|
||||||
number_indicators = number_section.getIndicators();
|
number_indicators = number_section.getIndicators();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Indicator> indicators = section.getIndicators();
|
List<Indicator> indicators = section.getIndicators();
|
||||||
for (Indicator indicator : indicators) {
|
for (Indicator indicator : indicators) {
|
||||||
if(indicator == null) {
|
if (indicator == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,10 +126,6 @@ public class IndicatorController {
|
||||||
return section;
|
return section;
|
||||||
}
|
}
|
||||||
|
|
||||||
// private void saveIndicatorAndAddInSection(Indicator indicator, Date date, Stakeholder stakeholder, Section section, List<String> indicators) throws UnsupportedEncodingException {
|
|
||||||
// saveIndicatorAndAddInSection(indicator, date, stakeholder, section, indicators);
|
|
||||||
// }
|
|
||||||
|
|
||||||
private void saveIndicatorAndAddInSection(Indicator indicator, Date date, Stakeholder stakeholder, String subcategoryId, Section section, List<String> indicators) throws UnsupportedEncodingException {
|
private void saveIndicatorAndAddInSection(Indicator indicator, Date date, Stakeholder stakeholder, String subcategoryId, Section section, List<String> indicators) throws UnsupportedEncodingException {
|
||||||
// indicator does not exist in DB
|
// indicator does not exist in DB
|
||||||
indicator.setCreationDate(date);
|
indicator.setCreationDate(date);
|
||||||
|
@ -155,7 +151,7 @@ public class IndicatorController {
|
||||||
@PathVariable("sectionId") String sectionId,
|
@PathVariable("sectionId") String sectionId,
|
||||||
@RequestBody Indicator indicator) throws UnsupportedEncodingException {
|
@RequestBody Indicator indicator) throws UnsupportedEncodingException {
|
||||||
log.debug("save indicator");
|
log.debug("save indicator");
|
||||||
log.debug("Name: "+indicator.getName() + " - Id: "+indicator.getId() + " - Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId + " - Section: "+sectionId);
|
log.debug("Name: " + indicator.getName() + " - Id: " + indicator.getId() + " - Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId + " - SubCategory: " + subcategoryId + " - Section: " + sectionId);
|
||||||
|
|
||||||
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
||||||
|
|
||||||
|
@ -163,9 +159,9 @@ public class IndicatorController {
|
||||||
indicator.setUpdateDate(date);
|
indicator.setUpdateDate(date);
|
||||||
|
|
||||||
Indicator oldIndicator = null;
|
Indicator oldIndicator = null;
|
||||||
if(indicator.getId() != null) {
|
if (indicator.getId() != null) {
|
||||||
oldIndicator = indicatorDAO.findById(indicator.getId());
|
oldIndicator = indicatorDAO.findById(indicator.getId());
|
||||||
if(oldIndicator == null) {
|
if (oldIndicator == null) {
|
||||||
// EXCEPTION - Indicator not found
|
// EXCEPTION - Indicator not found
|
||||||
throw new EntityNotFoundException("save indicator: Indicator with id: " + indicator.getId() + " not found");
|
throw new EntityNotFoundException("save indicator: Indicator with id: " + indicator.getId() + " not found");
|
||||||
}
|
}
|
||||||
|
@ -177,12 +173,11 @@ public class IndicatorController {
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
// this indicator belongs in default profile and it is new or it is updated
|
// this indicator belongs in default profile and it is new or it is updated
|
||||||
if(stakeholder.getDefaultId() == null) {
|
if (stakeholder.getDefaultId() == null) {
|
||||||
if(indicatorId == null) {
|
if (indicatorId == null) {
|
||||||
indicatorDAO.save(indicator);
|
indicatorDAO.save(indicator);
|
||||||
onSaveDefaultIndicator(indicator, section, subcategoryId);
|
onSaveDefaultIndicator(indicator, section, subcategoryId);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
onUpdateDefaultIndicator(indicator, stakeholder, oldIndicator);
|
onUpdateDefaultIndicator(indicator, stakeholder, oldIndicator);
|
||||||
indicatorDAO.save(indicator);
|
indicatorDAO.save(indicator);
|
||||||
}
|
}
|
||||||
|
@ -210,7 +205,7 @@ public class IndicatorController {
|
||||||
for (SubCategory subCategory : subCategories) {
|
for (SubCategory subCategory : subCategories) {
|
||||||
|
|
||||||
List<String> sections = null;
|
List<String> sections = null;
|
||||||
if(defaultSection.getType().equals("chart")) {
|
if (defaultSection.getType().equals("chart")) {
|
||||||
sections = subCategory.getCharts();
|
sections = subCategory.getCharts();
|
||||||
} else {
|
} else {
|
||||||
sections = subCategory.getNumbers();
|
sections = subCategory.getNumbers();
|
||||||
|
@ -218,7 +213,7 @@ public class IndicatorController {
|
||||||
|
|
||||||
for (String sectionId : sections) {
|
for (String sectionId : sections) {
|
||||||
Section section = sectionDAO.findById(sectionId);
|
Section section = sectionDAO.findById(sectionId);
|
||||||
if(section.getDefaultId() != null && section.getDefaultId().equals(defaultSection.getId())) {
|
if (section.getDefaultId() != null && section.getDefaultId().equals(defaultSection.getId())) {
|
||||||
Indicator indicatorNew = new Indicator();
|
Indicator indicatorNew = new Indicator();
|
||||||
indicatorNew.copyFromDefault(indicator, subCategory.getVisibility());
|
indicatorNew.copyFromDefault(indicator, subCategory.getVisibility());
|
||||||
indicatorDAO.save(indicatorNew);
|
indicatorDAO.save(indicatorNew);
|
||||||
|
@ -238,12 +233,9 @@ public class IndicatorController {
|
||||||
boolean changed;
|
boolean changed;
|
||||||
List<Indicator> indicators = indicatorDAO.findByDefaultId(indicator.getId());
|
List<Indicator> indicators = indicatorDAO.findByDefaultId(indicator.getId());
|
||||||
|
|
||||||
for(Indicator indicatorBasedOnDefault : indicators) {
|
for (Indicator indicatorBasedOnDefault : indicators) {
|
||||||
changed = false;
|
changed = false;
|
||||||
|
if ((
|
||||||
// if(indicator.getName() != null && !indicator.getName().equals(indicatorBasedOnDefault.getName())
|
|
||||||
// && (oldIndicator.getName() == null || oldIndicator.getName().equals(indicatorBasedOnDefault.getName()))) {
|
|
||||||
if((
|
|
||||||
(indicator.getName() == null && oldIndicator.getName() != null)
|
(indicator.getName() == null && oldIndicator.getName() != null)
|
||||||
||
|
||
|
||||||
(indicator.getName() != null && !indicator.getName().equals(indicatorBasedOnDefault.getName()))
|
(indicator.getName() != null && !indicator.getName().equals(indicatorBasedOnDefault.getName()))
|
||||||
|
@ -256,16 +248,13 @@ public class IndicatorController {
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(indicator.getDescription() != null && !indicator.getDescription().equals(indicatorBasedOnDefault.getDescription())
|
if (indicator.getDescription() != null && !indicator.getDescription().equals(indicatorBasedOnDefault.getDescription())
|
||||||
|| indicator.getDescription() == null && indicatorBasedOnDefault.getDescription() != null) {
|
|| indicator.getDescription() == null && indicatorBasedOnDefault.getDescription() != null) {
|
||||||
|
|
||||||
indicatorBasedOnDefault.setDescription(indicator.getDescription());
|
indicatorBasedOnDefault.setDescription(indicator.getDescription());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
if ((
|
||||||
// if(indicator.getAdditionalDescription() != null && !indicator.getAdditionalDescription().equals(indicatorBasedOnDefault.getAdditionalDescription())
|
|
||||||
// && (oldIndicator.getAdditionalDescription() == null || oldIndicator.getAdditionalDescription().equals(indicatorBasedOnDefault.getAdditionalDescription()))) {
|
|
||||||
if((
|
|
||||||
(indicator.getAdditionalDescription() == null && oldIndicator.getAdditionalDescription() != null)
|
(indicator.getAdditionalDescription() == null && oldIndicator.getAdditionalDescription() != null)
|
||||||
||
|
||
|
||||||
(indicator.getAdditionalDescription() != null && !indicator.getAdditionalDescription().equals(indicatorBasedOnDefault.getAdditionalDescription()))
|
(indicator.getAdditionalDescription() != null && !indicator.getAdditionalDescription().equals(indicatorBasedOnDefault.getAdditionalDescription()))
|
||||||
|
@ -280,17 +269,17 @@ public class IndicatorController {
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
List<IndicatorPath> indicatorPaths = indicatorBasedOnDefault.getIndicatorPaths();
|
List<IndicatorPath> indicatorPaths = indicatorBasedOnDefault.getIndicatorPaths();
|
||||||
if(indicatorPaths == null && indicator.getIndicatorPaths() != null) {
|
if (indicatorPaths == null && indicator.getIndicatorPaths() != null) {
|
||||||
indicatorPaths = new ArrayList<>();
|
indicatorPaths = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IndicatorPath indicatorPath : indicator.getIndicatorPaths()) {
|
for (IndicatorPath indicatorPath : indicator.getIndicatorPaths()) {
|
||||||
IndicatorPath indicatorPathBasedOnDefault = null;
|
IndicatorPath indicatorPathBasedOnDefault = null;
|
||||||
if(i < indicatorPaths.size()) {
|
if (i < indicatorPaths.size()) {
|
||||||
indicatorPathBasedOnDefault = indicatorPaths.get(i);
|
indicatorPathBasedOnDefault = indicatorPaths.get(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(indicatorPathBasedOnDefault == null) {
|
if (indicatorPathBasedOnDefault == null) {
|
||||||
// Add new indicator path in existing indicators
|
// Add new indicator path in existing indicators
|
||||||
IndicatorPath indicatorPathNew = new IndicatorPath(indicatorPath);
|
IndicatorPath indicatorPathNew = new IndicatorPath(indicatorPath);
|
||||||
indicatorPaths.add(indicatorPathNew);
|
indicatorPaths.add(indicatorPathNew);
|
||||||
|
@ -299,12 +288,8 @@ public class IndicatorController {
|
||||||
IndicatorPath oldIndicatorPath = oldIndicator.getIndicatorPaths().get(i);
|
IndicatorPath oldIndicatorPath = oldIndicator.getIndicatorPaths().get(i);
|
||||||
|
|
||||||
// Check if there are changes in indicator path and update existing indicators if needed
|
// Check if there are changes in indicator path and update existing indicators if needed
|
||||||
log.debug("update indicator path: "+i + " (indicator id: "+indicatorBasedOnDefault.getId()+")");
|
log.debug("update indicator path: " + i + " (indicator id: " + indicatorBasedOnDefault.getId() + ")");
|
||||||
|
if ((
|
||||||
// if(indicatorPath.getType() != null
|
|
||||||
// && !indicatorPath.getType().equals(indicatorPathBasedOnDefault.getType())
|
|
||||||
// && (oldIndicatorPath.getType().equals(indicatorPathBasedOnDefault.getType()))) {
|
|
||||||
if((
|
|
||||||
(indicatorPath.getType() == null && oldIndicatorPath.getType() != null)
|
(indicatorPath.getType() == null && oldIndicatorPath.getType() != null)
|
||||||
||
|
||
|
||||||
(indicatorPath.getType() != null && !indicatorPath.getType().equals(indicatorPathBasedOnDefault.getType()))
|
(indicatorPath.getType() != null && !indicatorPath.getType().equals(indicatorPathBasedOnDefault.getType()))
|
||||||
|
@ -316,9 +301,9 @@ public class IndicatorController {
|
||||||
indicatorPathBasedOnDefault.setType(indicatorPath.getType());
|
indicatorPathBasedOnDefault.setType(indicatorPath.getType());
|
||||||
changed = true; // parameter "type" needs to be changed as well
|
changed = true; // parameter "type" needs to be changed as well
|
||||||
}
|
}
|
||||||
log.debug("After type check: "+changed);
|
log.debug("After type check: " + changed);
|
||||||
|
|
||||||
if((
|
if ((
|
||||||
(indicatorPath.getFormat() == null && oldIndicatorPath.getFormat() != null)
|
(indicatorPath.getFormat() == null && oldIndicatorPath.getFormat() != null)
|
||||||
||
|
||
|
||||||
(indicatorPath.getFormat() != null && !indicatorPath.getFormat().equals(indicatorPathBasedOnDefault.getFormat()))
|
(indicatorPath.getFormat() != null && !indicatorPath.getFormat().equals(indicatorPathBasedOnDefault.getFormat()))
|
||||||
|
@ -330,12 +315,8 @@ public class IndicatorController {
|
||||||
indicatorPathBasedOnDefault.setFormat(indicatorPath.getFormat());
|
indicatorPathBasedOnDefault.setFormat(indicatorPath.getFormat());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
log.debug("After type check: "+changed);
|
log.debug("After type check: " + changed);
|
||||||
|
if ((
|
||||||
// if(indicatorPath.getSource() != null
|
|
||||||
// && !indicatorPath.getSource().equals(indicatorPathBasedOnDefault.getSource())
|
|
||||||
// && (oldIndicatorPath.getSource().equals(indicatorPathBasedOnDefault.getSource()))) {
|
|
||||||
if((
|
|
||||||
(indicatorPath.getSource() == null && oldIndicatorPath.getSource() != null)
|
(indicatorPath.getSource() == null && oldIndicatorPath.getSource() != null)
|
||||||
||
|
||
|
||||||
(indicatorPath.getSource() != null && !indicatorPath.getSource().equals(indicatorPathBasedOnDefault.getSource()))
|
(indicatorPath.getSource() != null && !indicatorPath.getSource().equals(indicatorPathBasedOnDefault.getSource()))
|
||||||
|
@ -347,12 +328,8 @@ public class IndicatorController {
|
||||||
indicatorPathBasedOnDefault.setSource(indicatorPath.getSource());
|
indicatorPathBasedOnDefault.setSource(indicatorPath.getSource());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
log.debug("After source check: "+changed);
|
log.debug("After source check: " + changed);
|
||||||
|
if ((
|
||||||
// if(indicatorPath.getUrl() != null
|
|
||||||
// && !indicatorPath.getUrl().equals(indicatorPathBasedOnDefault.getUrl())
|
|
||||||
// && (oldIndicatorPath.getUrl().equals(indicatorPathBasedOnDefault.getUrl()))) {
|
|
||||||
if((
|
|
||||||
(indicatorPath.getUrl() == null && oldIndicatorPath.getUrl() != null)
|
(indicatorPath.getUrl() == null && oldIndicatorPath.getUrl() != null)
|
||||||
||
|
||
|
||||||
(indicatorPath.getUrl() != null && !indicatorPath.getUrl().equals(indicatorPathBasedOnDefault.getUrl()))
|
(indicatorPath.getUrl() != null && !indicatorPath.getUrl().equals(indicatorPathBasedOnDefault.getUrl()))
|
||||||
|
@ -364,37 +341,35 @@ public class IndicatorController {
|
||||||
indicatorPathBasedOnDefault.setUrl(indicatorPath.getUrl());
|
indicatorPathBasedOnDefault.setUrl(indicatorPath.getUrl());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
log.debug("After url check: "+changed);
|
log.debug("After url check: " + changed);
|
||||||
|
|
||||||
if((
|
if ((
|
||||||
(indicatorPath.getChartObject() == null && oldIndicatorPath.getChartObject() != null)
|
(indicatorPath.getChartObject() == null && oldIndicatorPath.getChartObject() != null)
|
||||||
||
|
||
|
||||||
(indicatorPath.getChartObject() != null && !indicatorPath.getChartObject().equals(indicatorPathBasedOnDefault.getChartObject()))
|
(indicatorPath.getChartObject() != null && !indicatorPath.getChartObject().equals(indicatorPathBasedOnDefault.getChartObject()))
|
||||||
) && (
|
) && (
|
||||||
(oldIndicatorPath.getChartObject() == null && indicatorPathBasedOnDefault.getChartObject() == null)
|
(oldIndicatorPath.getChartObject() == null && indicatorPathBasedOnDefault.getChartObject() == null)
|
||||||
||
|
||
|
||||||
(oldIndicatorPath.getChartObject() != null && oldIndicatorPath.getChartObject().equals(indicatorPathBasedOnDefault.getChartObject()))
|
(oldIndicatorPath.getChartObject() != null && oldIndicatorPath.getChartObject().equals(indicatorPathBasedOnDefault.getChartObject()))
|
||||||
)) {
|
)) {
|
||||||
|
|
||||||
indicatorPathBasedOnDefault.setChartObject(indicatorPath.getChartObject());
|
indicatorPathBasedOnDefault.setChartObject(indicatorPath.getChartObject());
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
log.debug("After chartObject check: "+changed);
|
log.debug("After chartObject check: " + changed);
|
||||||
|
|
||||||
if(indicatorPath.getParameters() != null) {
|
if (indicatorPath.getParameters() != null) {
|
||||||
if (indicatorPathBasedOnDefault.getParameters() == null) {
|
if (indicatorPathBasedOnDefault.getParameters() == null) {
|
||||||
indicatorPathBasedOnDefault.setParameters(new HashMap<>());
|
indicatorPathBasedOnDefault.setParameters(new HashMap<>());
|
||||||
}
|
}
|
||||||
//if (indicatorPath.getParameters().size() != indicatorPathBasedOnDefault.getParameters().size()) {
|
|
||||||
//log.debug("Different number of parameters");
|
|
||||||
for (Map.Entry<String, String> parameter : indicatorPath.getParameters().entrySet()) {
|
for (Map.Entry<String, String> parameter : indicatorPath.getParameters().entrySet()) {
|
||||||
log.debug("\nindicatorPath: parameter.getKey(): "+parameter.getKey()+" - value: "+parameter.getValue()
|
log.debug("\nindicatorPath: parameter.getKey(): " + parameter.getKey() + " - value: " + parameter.getValue()
|
||||||
+"\nindicatorPathBasedOnDefault:parameters:key: "+ indicatorPathBasedOnDefault.getParameters().get(parameter.getKey())
|
+ "\nindicatorPathBasedOnDefault:parameters:key: " + indicatorPathBasedOnDefault.getParameters().get(parameter.getKey())
|
||||||
+"\noldIndicatorPath:parameters:key: "+ (oldIndicatorPath.getParameters() == null ? "null" : oldIndicatorPath.getParameters().get(parameter.getKey())));
|
+ "\noldIndicatorPath:parameters:key: " + (oldIndicatorPath.getParameters() == null ? "null" : oldIndicatorPath.getParameters().get(parameter.getKey())));
|
||||||
if (!indicatorPathBasedOnDefault.getParameters().containsKey(parameter.getKey())
|
if (!indicatorPathBasedOnDefault.getParameters().containsKey(parameter.getKey())
|
||||||
|| (oldIndicatorPath.getParameters() == null || oldIndicatorPath.getParameters().get(parameter.getKey()) == null
|
|| (oldIndicatorPath.getParameters() == null || oldIndicatorPath.getParameters().get(parameter.getKey()) == null
|
||||||
|| (oldIndicatorPath.getParameters().get(parameter.getKey()).equals(indicatorPathBasedOnDefault.getParameters().get(parameter.getKey()))
|
|| (oldIndicatorPath.getParameters().get(parameter.getKey()).equals(indicatorPathBasedOnDefault.getParameters().get(parameter.getKey()))
|
||||||
&& !parameter.getValue().equals(indicatorPathBasedOnDefault.getParameters().get(parameter.getKey()))))
|
&& !parameter.getValue().equals(indicatorPathBasedOnDefault.getParameters().get(parameter.getKey()))))
|
||||||
) {
|
) {
|
||||||
indicatorPathBasedOnDefault.getParameters().put(parameter.getKey(), parameter.getValue());
|
indicatorPathBasedOnDefault.getParameters().put(parameter.getKey(), parameter.getValue());
|
||||||
changed = true;
|
changed = true;
|
||||||
|
@ -402,9 +377,9 @@ public class IndicatorController {
|
||||||
}
|
}
|
||||||
|
|
||||||
// When deleting indicator path parameters in a default profile, delete them also from all children profiles
|
// When deleting indicator path parameters in a default profile, delete them also from all children profiles
|
||||||
if(oldIndicatorPath.getParameters() != null && indicatorPath.getParameters().size() < oldIndicatorPath.getParameters().size()) {
|
if (oldIndicatorPath.getParameters() != null && indicatorPath.getParameters().size() < oldIndicatorPath.getParameters().size()) {
|
||||||
for (Map.Entry<String, String> parameter : oldIndicatorPath.getParameters().entrySet()) {
|
for (Map.Entry<String, String> parameter : oldIndicatorPath.getParameters().entrySet()) {
|
||||||
if(!indicatorPath.getParameters().containsKey(parameter.getKey())) {
|
if (!indicatorPath.getParameters().containsKey(parameter.getKey())) {
|
||||||
indicatorPathBasedOnDefault.getParameters().remove(parameter.getKey());
|
indicatorPathBasedOnDefault.getParameters().remove(parameter.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -412,21 +387,21 @@ public class IndicatorController {
|
||||||
}
|
}
|
||||||
log.debug("After parameters check: " + changed);
|
log.debug("After parameters check: " + changed);
|
||||||
|
|
||||||
if(indicatorPath.getJsonPath() != null) {
|
if (indicatorPath.getJsonPath() != null) {
|
||||||
boolean jsonPathChanged = false;
|
boolean jsonPathChanged = false;
|
||||||
boolean breaked = false;
|
boolean breaked = false;
|
||||||
|
|
||||||
int oldJsonPathSize = 0;
|
int oldJsonPathSize = 0;
|
||||||
if(oldIndicatorPath.getJsonPath() != null) {
|
if (oldIndicatorPath.getJsonPath() != null) {
|
||||||
oldJsonPathSize = oldIndicatorPath.getJsonPath().size();
|
oldJsonPathSize = oldIndicatorPath.getJsonPath().size();
|
||||||
}
|
}
|
||||||
int basedOnDefaultJsonPathSize = 0;
|
int basedOnDefaultJsonPathSize = 0;
|
||||||
if(indicatorPathBasedOnDefault.getJsonPath() != null) {
|
if (indicatorPathBasedOnDefault.getJsonPath() != null) {
|
||||||
basedOnDefaultJsonPathSize = indicatorPathBasedOnDefault.getJsonPath().size();
|
basedOnDefaultJsonPathSize = indicatorPathBasedOnDefault.getJsonPath().size();
|
||||||
}
|
}
|
||||||
log.debug("old: "+oldJsonPathSize+" - based on default: "+basedOnDefaultJsonPathSize+" - new: "+indicatorPath.getJsonPath().size());
|
log.debug("old: " + oldJsonPathSize + " - based on default: " + basedOnDefaultJsonPathSize + " - new: " + indicatorPath.getJsonPath().size());
|
||||||
if(oldJsonPathSize == basedOnDefaultJsonPathSize) {
|
if (oldJsonPathSize == basedOnDefaultJsonPathSize) {
|
||||||
if(indicatorPathBasedOnDefault.getJsonPath() == null && indicatorPath.getJsonPath().size() > 0) {
|
if (indicatorPathBasedOnDefault.getJsonPath() == null && indicatorPath.getJsonPath().size() > 0) {
|
||||||
indicatorPathBasedOnDefault.setJsonPath(new ArrayList<>());
|
indicatorPathBasedOnDefault.setJsonPath(new ArrayList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -436,12 +411,12 @@ public class IndicatorController {
|
||||||
Iterator<String> jsonStringBasedOnDefaultIterator = indicatorPathBasedOnDefault.getJsonPath().iterator();
|
Iterator<String> jsonStringBasedOnDefaultIterator = indicatorPathBasedOnDefault.getJsonPath().iterator();
|
||||||
while (jsonStringBasedOnDefaultIterator.hasNext()) {
|
while (jsonStringBasedOnDefaultIterator.hasNext()) {
|
||||||
String jsonStringBasedOnDefault = jsonStringBasedOnDefaultIterator.next();
|
String jsonStringBasedOnDefault = jsonStringBasedOnDefaultIterator.next();
|
||||||
if(oldIndicatorPath.getJsonPath().get(oldIndex).equals(jsonStringBasedOnDefault)) {
|
if (oldIndicatorPath.getJsonPath().get(oldIndex).equals(jsonStringBasedOnDefault)) {
|
||||||
if(basedOnDefaultIndex >= indicatorPath.getJsonPath().size()) { // string deleted
|
if (basedOnDefaultIndex >= indicatorPath.getJsonPath().size()) { // string deleted
|
||||||
jsonStringBasedOnDefaultIterator.remove();
|
jsonStringBasedOnDefaultIterator.remove();
|
||||||
jsonPathChanged = true;
|
jsonPathChanged = true;
|
||||||
} else { // check if string changed
|
} else { // check if string changed
|
||||||
if(!indicatorPath.getJsonPath().get(basedOnDefaultIndex).equals(jsonStringBasedOnDefault)) {
|
if (!indicatorPath.getJsonPath().get(basedOnDefaultIndex).equals(jsonStringBasedOnDefault)) {
|
||||||
indicatorPathBasedOnDefault.getJsonPath().set(basedOnDefaultIndex, indicatorPath.getJsonPath().get(basedOnDefaultIndex));
|
indicatorPathBasedOnDefault.getJsonPath().set(basedOnDefaultIndex, indicatorPath.getJsonPath().get(basedOnDefaultIndex));
|
||||||
jsonPathChanged = true;
|
jsonPathChanged = true;
|
||||||
}
|
}
|
||||||
|
@ -451,20 +426,20 @@ public class IndicatorController {
|
||||||
} else {
|
} else {
|
||||||
breaked = true;
|
breaked = true;
|
||||||
jsonPathChanged = false;
|
jsonPathChanged = false;
|
||||||
log.debug("not the same: "+oldIndex);
|
log.debug("not the same: " + oldIndex);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int index=0;
|
int index = 0;
|
||||||
if(!breaked && indicatorPath.getJsonPath().size() > indicatorPathBasedOnDefault.getJsonPath().size()) { // strings added
|
if (!breaked && indicatorPath.getJsonPath().size() > indicatorPathBasedOnDefault.getJsonPath().size()) { // strings added
|
||||||
jsonPathChanged = true;
|
jsonPathChanged = true;
|
||||||
for(index=indicatorPathBasedOnDefault.getJsonPath().size(); index < indicatorPath.getJsonPath().size(); index++) {
|
for (index = indicatorPathBasedOnDefault.getJsonPath().size(); index < indicatorPath.getJsonPath().size(); index++) {
|
||||||
indicatorPathBasedOnDefault.getJsonPath().add(indicatorPath.getJsonPath().get(index));
|
indicatorPathBasedOnDefault.getJsonPath().add(indicatorPath.getJsonPath().get(index));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(jsonPathChanged) {
|
if (jsonPathChanged) {
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -476,7 +451,7 @@ public class IndicatorController {
|
||||||
}
|
}
|
||||||
// TODO when deleting indicator paths...
|
// TODO when deleting indicator paths...
|
||||||
|
|
||||||
if(!changed) {
|
if (!changed) {
|
||||||
// break;
|
// break;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -496,16 +471,16 @@ public class IndicatorController {
|
||||||
@PathVariable("indicatorId") String indicatorId,
|
@PathVariable("indicatorId") String indicatorId,
|
||||||
@RequestParam(required = false) String children) {
|
@RequestParam(required = false) String children) {
|
||||||
log.debug("delete indicator");
|
log.debug("delete indicator");
|
||||||
log.debug("Id: "+indicatorId + " - Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId + " - Section: "+sectionId);
|
log.debug("Id: " + indicatorId + " - Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId + " - SubCategory: " + subcategoryId + " - Section: " + sectionId);
|
||||||
|
|
||||||
Indicator indicator = indicatorDAO.findById(indicatorId);
|
Indicator indicator = indicatorDAO.findById(indicatorId);
|
||||||
if(indicator != null) {
|
if (indicator != null) {
|
||||||
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
if(indicator.getDefaultId() != null && !rolesUtils.hasCreateAndDeleteAuthority(stakeholder.getType())) {
|
if (indicator.getDefaultId() != null && !rolesUtils.hasCreateAndDeleteAuthority(stakeholder.getType())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("Delete indicator: You are not authorized to delete a default Indicator in stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("Delete indicator: You are not authorized to delete a default Indicator in stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> indicators = section.getIndicators();
|
List<String> indicators = section.getIndicators();
|
||||||
|
@ -514,7 +489,7 @@ public class IndicatorController {
|
||||||
if (index != -1) {
|
if (index != -1) {
|
||||||
|
|
||||||
// this indicator belongs in default profile
|
// this indicator belongs in default profile
|
||||||
if(section.getDefaultId() == null && children != null) {
|
if (section.getDefaultId() == null && children != null) {
|
||||||
onDeleteDefaultIndicator(indicatorId, sectionId, children);
|
onDeleteDefaultIndicator(indicatorId, sectionId, children);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -526,44 +501,44 @@ public class IndicatorController {
|
||||||
log.debug("Indicator deleted!");
|
log.debug("Indicator deleted!");
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Indicator not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias(); -> Section: section.getTitle();
|
// EXCEPTION - Indicator not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias(); -> Section: section.getTitle();
|
||||||
throw new PathNotValidException("Delete indicator: Indicator with id: "+indicatorId+" not found in Sectiom: "+sectionId);
|
throw new PathNotValidException("Delete indicator: Indicator with id: " + indicatorId + " not found in Sectiom: " + sectionId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Indicator not found
|
// EXCEPTION - Indicator not found
|
||||||
throw new EntityNotFoundException("Delete indicator: Indicator with id: "+indicatorId+" not found");
|
throw new EntityNotFoundException("Delete indicator: Indicator with id: " + indicatorId + " not found");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onDeleteDefaultIndicator(String defaultIndicatorId, String defaultSectionId, String children) {
|
public boolean onDeleteDefaultIndicator(String defaultIndicatorId, String defaultSectionId, String children) {
|
||||||
if(children.equals("delete")) {
|
if (children.equals("delete")) {
|
||||||
// 2nd way
|
// 2nd way
|
||||||
List<Section> sections = sectionDAO.findByDefaultId(defaultSectionId);
|
List<Section> sections = sectionDAO.findByDefaultId(defaultSectionId);
|
||||||
List<Indicator> indicators = indicatorDAO.findByDefaultId(defaultIndicatorId);
|
List<Indicator> indicators = indicatorDAO.findByDefaultId(defaultIndicatorId);
|
||||||
|
|
||||||
for(Section section : sections) {
|
for (Section section : sections) {
|
||||||
Iterator<Indicator> indicatorsIterator = indicators.iterator();
|
Iterator<Indicator> indicatorsIterator = indicators.iterator();
|
||||||
while(indicatorsIterator.hasNext()) {
|
while (indicatorsIterator.hasNext()) {
|
||||||
String indicatorId = indicatorsIterator.next().getId();
|
String indicatorId = indicatorsIterator.next().getId();
|
||||||
if(section.getIndicators().contains(indicatorId)) {
|
if (section.getIndicators().contains(indicatorId)) {
|
||||||
indicatorsIterator.remove();
|
indicatorsIterator.remove();
|
||||||
|
|
||||||
section.getIndicators().remove(indicatorId);
|
section.getIndicators().remove(indicatorId);
|
||||||
sectionDAO.save(section);
|
sectionDAO.save(section);
|
||||||
|
|
||||||
indicatorDAO.delete(indicatorId);
|
indicatorDAO.delete(indicatorId);
|
||||||
log.debug("Indicator with id: "+indicatorId+" deleted!");
|
log.debug("Indicator with id: " + indicatorId + " deleted!");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(children.equals("disconnect")) {
|
} else if (children.equals("disconnect")) {
|
||||||
List<Indicator> indicators = indicatorDAO.findByDefaultId(defaultIndicatorId);
|
List<Indicator> indicators = indicatorDAO.findByDefaultId(defaultIndicatorId);
|
||||||
for(Indicator indicator : indicators) {
|
for (Indicator indicator : indicators) {
|
||||||
indicator.setDefaultId(null);
|
indicator.setDefaultId(null);
|
||||||
indicatorDAO.save(indicator);
|
indicatorDAO.save(indicator);
|
||||||
log.debug("DefaultId for Indicator with id: "+indicator.getId()+" empty!");
|
log.debug("DefaultId for Indicator with id: " + indicator.getId() + " empty!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -578,8 +553,8 @@ public class IndicatorController {
|
||||||
@PathVariable("sectionId") String sectionId,
|
@PathVariable("sectionId") String sectionId,
|
||||||
@PathVariable("type") String type,
|
@PathVariable("type") String type,
|
||||||
@RequestBody ReorderEvent reorderEvent) {
|
@RequestBody ReorderEvent reorderEvent) {
|
||||||
log.debug("reorder indicators of type: "+type);
|
log.debug("reorder indicators of type: " + type);
|
||||||
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId + " - Section: "+sectionId);
|
log.debug("Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId + " - SubCategory: " + subcategoryId + " - Section: " + sectionId);
|
||||||
|
|
||||||
List<String> indicators = reorderEvent.getIds();
|
List<String> indicators = reorderEvent.getIds();
|
||||||
String actionType = reorderEvent.getAction();
|
String actionType = reorderEvent.getAction();
|
||||||
|
@ -596,9 +571,9 @@ public class IndicatorController {
|
||||||
section.setIndicators(indicators);
|
section.setIndicators(indicators);
|
||||||
|
|
||||||
List<Indicator> indicatorsFull = new ArrayList<>();
|
List<Indicator> indicatorsFull = new ArrayList<>();
|
||||||
for(String indicatorId : indicators) {
|
for (String indicatorId : indicators) {
|
||||||
Indicator indicator = indicatorDAO.findById(indicatorId);
|
Indicator indicator = indicatorDAO.findById(indicatorId);
|
||||||
if(indicator == null) {
|
if (indicator == null) {
|
||||||
// EXCEPTION - Indicator not found
|
// EXCEPTION - Indicator not found
|
||||||
throw new EntityNotFoundException("Reorder indicators: Indicator with id: " + indicatorId + " not found");
|
throw new EntityNotFoundException("Reorder indicators: Indicator with id: " + indicatorId + " not found");
|
||||||
}
|
}
|
||||||
|
@ -614,14 +589,14 @@ public class IndicatorController {
|
||||||
@PreAuthorize("isAuthenticated()")
|
@PreAuthorize("isAuthenticated()")
|
||||||
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/{subcategoryId}/{sectionId}/{indicatorId}/change-visibility", method = RequestMethod.POST)
|
@RequestMapping(value = "/{stakeholderId}/{topicId}/{categoryId}/{subcategoryId}/{sectionId}/{indicatorId}/change-visibility", method = RequestMethod.POST)
|
||||||
public Indicator changeIndicatorVisibility(@PathVariable("stakeholderId") String stakeholderId,
|
public Indicator changeIndicatorVisibility(@PathVariable("stakeholderId") String stakeholderId,
|
||||||
@PathVariable("topicId") String topicId,
|
@PathVariable("topicId") String topicId,
|
||||||
@PathVariable("categoryId") String categoryId,
|
@PathVariable("categoryId") String categoryId,
|
||||||
@PathVariable("subcategoryId") String subcategoryId,
|
@PathVariable("subcategoryId") String subcategoryId,
|
||||||
@PathVariable("sectionId") String sectionId,
|
@PathVariable("sectionId") String sectionId,
|
||||||
@PathVariable("indicatorId") String indicatorId,
|
@PathVariable("indicatorId") String indicatorId,
|
||||||
@RequestParam("visibility") Visibility visibility) {
|
@RequestParam("visibility") Visibility visibility) {
|
||||||
log.debug("change indicator visibility: "+visibility);
|
log.debug("change indicator visibility: " + visibility);
|
||||||
log.debug("Stakeholder: "+stakeholderId + " - Topic: "+topicId + " - Category: "+categoryId+ " - SubCategory: "+subcategoryId + " - Section: "+sectionId+ " - Indicator: "+indicatorId);
|
log.debug("Stakeholder: " + stakeholderId + " - Topic: " + topicId + " - Category: " + categoryId + " - SubCategory: " + subcategoryId + " - Section: " + sectionId + " - Indicator: " + indicatorId);
|
||||||
|
|
||||||
Indicator indicator = indicatorDAO.findById(indicatorId);
|
Indicator indicator = indicatorDAO.findById(indicatorId);
|
||||||
if (indicator == null) {
|
if (indicator == null) {
|
||||||
|
@ -632,16 +607,16 @@ public class IndicatorController {
|
||||||
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
Section<String> section = checkForExceptions(stakeholderId, topicId, categoryId, subcategoryId, sectionId, indicator.getType());
|
||||||
List<String> indicators = section.getIndicators();
|
List<String> indicators = section.getIndicators();
|
||||||
|
|
||||||
if(indicators.contains(indicatorId)) {
|
if (indicators.contains(indicatorId)) {
|
||||||
return changeVisibilityTree(indicatorId, indicator, visibility);
|
return changeVisibilityTree(indicatorId, indicator, visibility);
|
||||||
} else {
|
} else {
|
||||||
// EXCEPTION - Indicator not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subCategory.getAlias(); -> Section: section.getTitle();
|
// EXCEPTION - Indicator not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subCategory.getAlias(); -> Section: section.getTitle();
|
||||||
throw new PathNotValidException("Toggle indicators: Indicator with id: "+indicatorId+" not found in Section: "+sectionId);
|
throw new PathNotValidException("Toggle indicators: Indicator with id: " + indicatorId + " not found in Section: " + sectionId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Indicator changeVisibilityTree(String indicatorId, Indicator indicator, Visibility visibility) {
|
public Indicator changeVisibilityTree(String indicatorId, Indicator indicator, Visibility visibility) {
|
||||||
if(indicator == null) {
|
if (indicator == null) {
|
||||||
indicator = indicatorDAO.findById(indicatorId);
|
indicator = indicatorDAO.findById(indicatorId);
|
||||||
if (indicator == null) {
|
if (indicator == null) {
|
||||||
// EXCEPTION - Indicator not found
|
// EXCEPTION - Indicator not found
|
||||||
|
@ -660,79 +635,79 @@ public class IndicatorController {
|
||||||
|
|
||||||
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
Stakeholder<String> stakeholder = stakeholderDAO.findById(stakeholderId);
|
||||||
|
|
||||||
if(stakeholder == null) {
|
if (stakeholder == null) {
|
||||||
// EXCEPTION - Stakeholder not found
|
// EXCEPTION - Stakeholder not found
|
||||||
throw new EntityNotFoundException("Save indicator: Stakeholder with id: " + stakeholderId + " not found");
|
throw new EntityNotFoundException("Save indicator: Stakeholder with id: " + stakeholderId + " not found");
|
||||||
}
|
}
|
||||||
if(!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
if (!rolesUtils.hasUpdateAuthority(stakeholder.getType(), stakeholder.getAlias())) {
|
||||||
// EXCEPTION - Access denied
|
// EXCEPTION - Access denied
|
||||||
throw new ForbiddenException("CheckForExceptions Indicator: You are not authorized to update stakeholder with id: "+stakeholderId);
|
throw new ForbiddenException("CheckForExceptions Indicator: You are not authorized to update stakeholder with id: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Topic<String> topic = topicDAO.findById(topicId);
|
Topic<String> topic = topicDAO.findById(topicId);
|
||||||
if(topic == null) {
|
if (topic == null) {
|
||||||
// EXCEPTION - Topic not found
|
// EXCEPTION - Topic not found
|
||||||
throw new EntityNotFoundException("Save indicator: Topic with id: "+topicId+" not found");
|
throw new EntityNotFoundException("Save indicator: Topic with id: " + topicId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!stakeholder.getTopics().contains(topicId)) {
|
if (!stakeholder.getTopics().contains(topicId)) {
|
||||||
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
// EXCEPTION - Topic not found in Stakeholder: stakeholder.getAlias();
|
||||||
throw new PathNotValidException("Save indicator: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
throw new PathNotValidException("Save indicator: Topic with id: " + topicId + " not found in Stakeholder: " + stakeholderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Category<String> category = categoryDAO.findById(categoryId);
|
Category<String> category = categoryDAO.findById(categoryId);
|
||||||
if(category == null) {
|
if (category == null) {
|
||||||
// EXCEPTION - Category not found
|
// EXCEPTION - Category not found
|
||||||
throw new EntityNotFoundException("Save indicator: Category with id: "+categoryId+" not found");
|
throw new EntityNotFoundException("Save indicator: Category with id: " + categoryId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!topic.getCategories().contains(categoryId)) {
|
if (!topic.getCategories().contains(categoryId)) {
|
||||||
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
// EXCEPTION - Category not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias();
|
||||||
throw new PathNotValidException("Save indicator: Category with id: "+categoryId+" not found in Topic: "+topicId);
|
throw new PathNotValidException("Save indicator: Category with id: " + categoryId + " not found in Topic: " + topicId);
|
||||||
}
|
}
|
||||||
|
|
||||||
SubCategory<String> subcategory = subCategoryDAO.findById(subcategoryId);
|
SubCategory<String> subcategory = subCategoryDAO.findById(subcategoryId);
|
||||||
if(subcategory == null) {
|
if (subcategory == null) {
|
||||||
// EXCEPTION - SubCategory not found
|
// EXCEPTION - SubCategory not found
|
||||||
throw new EntityNotFoundException("Save indicator: SubCategory with id: "+subcategoryId+" not found");
|
throw new EntityNotFoundException("Save indicator: SubCategory with id: " + subcategoryId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!category.getSubCategories().contains(subcategoryId)) {
|
if (!category.getSubCategories().contains(subcategoryId)) {
|
||||||
// EXCEPTION - SubCategory not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias();
|
// EXCEPTION - SubCategory not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias();
|
||||||
throw new PathNotValidException("Save indicator: SubCategory with id: "+subcategoryId+" not found in Category: "+categoryId);
|
throw new PathNotValidException("Save indicator: SubCategory with id: " + subcategoryId + " not found in Category: " + categoryId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Section<String> section = sectionDAO.findById(sectionId);
|
Section<String> section = sectionDAO.findById(sectionId);
|
||||||
if(section == null) {
|
if (section == null) {
|
||||||
// EXCEPTION - Section not found
|
// EXCEPTION - Section not found
|
||||||
throw new EntityNotFoundException("Save indicator: Section with id: "+sectionId+" not found");
|
throw new EntityNotFoundException("Save indicator: Section with id: " + sectionId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(indicatorType.equals("chart")) {
|
if (indicatorType.equals("chart")) {
|
||||||
if (!subcategory.getCharts().contains(sectionId)) {
|
if (!subcategory.getCharts().contains(sectionId)) {
|
||||||
// EXCEPTION - Section not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias();
|
// EXCEPTION - Section not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias();
|
||||||
throw new PathNotValidException("Save indicator: SubCategory with id: " + subcategoryId + " not found in Category: " + categoryId);
|
throw new PathNotValidException("Save indicator: SubCategory with id: " + subcategoryId + " not found in Category: " + categoryId);
|
||||||
}
|
}
|
||||||
} else if(indicatorType.equals("number")) {
|
} else if (indicatorType.equals("number")) {
|
||||||
if (!subcategory.getNumbers().contains(sectionId)) {
|
if (!subcategory.getNumbers().contains(sectionId)) {
|
||||||
// EXCEPTION - Section not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias();
|
// EXCEPTION - Section not found in Stakeholder: stakeholder.getAlias(); -> Topic: topic.getAlias(); -> Category: category.getAlias(); -> SubCategory: subcategory.getAlias();
|
||||||
throw new PathNotValidException("Save indicator: SubCategory with id: " + subcategoryId + " not found in Category: " + categoryId);
|
throw new PathNotValidException("Save indicator: SubCategory with id: " + subcategoryId + " not found in Category: " + categoryId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return section;
|
return section;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteTree(Section section) {
|
public void deleteTree(Section section) {
|
||||||
List<String> indicators = section.getIndicators();
|
List<String> indicators = section.getIndicators();
|
||||||
for(String indicatorId : indicators) {
|
for (String indicatorId : indicators) {
|
||||||
indicatorDAO.delete(indicatorId);
|
indicatorDAO.delete(indicatorId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void disConnectTree(Section section) {
|
public void disConnectTree(Section section) {
|
||||||
List<String> indicators = section.getIndicators();
|
List<String> indicators = section.getIndicators();
|
||||||
for(String indicatorId : indicators) {
|
for (String indicatorId : indicators) {
|
||||||
Indicator indicator = indicatorDAO.findById(indicatorId);
|
Indicator indicator = indicatorDAO.findById(indicatorId);
|
||||||
indicator.setDefaultId(null);
|
indicator.setDefaultId(null);
|
||||||
indicatorDAO.save(indicator);
|
indicatorDAO.save(indicator);
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Category;
|
import eu.dnetlib.uoamonitorservice.entities.Category;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface CategoryDAO {
|
@Repository
|
||||||
|
public interface CategoryDAO extends MongoRepository<Category, String> {
|
||||||
List<Category> findAll();
|
List<Category> findAll();
|
||||||
List<Category> findByDefaultId(String DefaultId);
|
List<Category> findByDefaultId(String DefaultId);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Indicator;
|
import eu.dnetlib.uoamonitorservice.entities.Indicator;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface IndicatorDAO {
|
@Repository
|
||||||
|
public interface IndicatorDAO extends MongoRepository<Indicator, String> {
|
||||||
List<Indicator> findAll();
|
List<Indicator> findAll();
|
||||||
List<Indicator> findByDefaultId(String DefaultId);
|
List<Indicator> findByDefaultId(String DefaultId);
|
||||||
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Category;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBCategoryDAO extends CategoryDAO, MongoRepository<Category, String> {
|
|
||||||
List<Category> findAll();
|
|
||||||
List<Category> findByDefaultId(String DefaultId);
|
|
||||||
|
|
||||||
Category findBySubCategoriesContaining(String subCategory);
|
|
||||||
|
|
||||||
Category findById(String Id);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
Category save(Category category);
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Indicator;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBIndicatorDAO extends IndicatorDAO, MongoRepository<Indicator, String> {
|
|
||||||
List<Indicator> findAll();
|
|
||||||
List<Indicator> findByDefaultId(String DefaultId);
|
|
||||||
|
|
||||||
Indicator findById(String Id);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
Indicator save(Indicator indicator);
|
|
||||||
//List<Indicator> saveAll(List<Indicator> indicators);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Section;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBSectionDAO extends SectionDAO, MongoRepository<Section, String> {
|
|
||||||
List<Section> findAll();
|
|
||||||
List<Section> findByDefaultId(String DefaultId);
|
|
||||||
|
|
||||||
Section findById(String Id);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
Section save(Section indicator);
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBStakeholderDAO extends StakeholderDAO, MongoRepository<Stakeholder, String> {
|
|
||||||
List<Stakeholder> findAll();
|
|
||||||
List<Stakeholder> findByType(String Type);
|
|
||||||
|
|
||||||
List<Stakeholder> findByDefaultId(String DefaultId);
|
|
||||||
List<Stakeholder> findByDefaultIdAndType(String DefaultId, String Type);
|
|
||||||
|
|
||||||
List<Stakeholder> findByDefaultIdNot(String DefaultId);
|
|
||||||
List<Stakeholder> findByDefaultIdNotAndType(String DefaultId, String Type);
|
|
||||||
|
|
||||||
Stakeholder findByTopicsContaining(String topic);
|
|
||||||
|
|
||||||
Stakeholder findById(String Id);
|
|
||||||
Stakeholder findByAlias(String Alias);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
Stakeholder save(Stakeholder stakeholder);
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.SubCategory;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBSubCategoryDAO extends SubCategoryDAO, MongoRepository<SubCategory, String> {
|
|
||||||
List<SubCategory> findAll();
|
|
||||||
List<SubCategory> findByDefaultId(String DefaultId);
|
|
||||||
|
|
||||||
SubCategory findById(String Id);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
SubCategory save(SubCategory subCategory);
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Topic;
|
|
||||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface MongoDBTopicDAO extends TopicDAO, MongoRepository<Topic, String> {
|
|
||||||
List<Topic> findAll();
|
|
||||||
List<Topic> findByDefaultId(String DefaultId);
|
|
||||||
|
|
||||||
Topic findByCategoriesContaining(String category);
|
|
||||||
|
|
||||||
Topic findById(String Id);
|
|
||||||
|
|
||||||
void delete(String Id);
|
|
||||||
|
|
||||||
Topic save(Topic topic);
|
|
||||||
}
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Section;
|
import eu.dnetlib.uoamonitorservice.entities.Section;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface SectionDAO {
|
@Repository
|
||||||
|
public interface SectionDAO extends MongoRepository<Section, String> {
|
||||||
List<Section> findAll();
|
List<Section> findAll();
|
||||||
List<Section> findByDefaultId(String DefaultId);
|
List<Section> findByDefaultId(String DefaultId);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
|
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface StakeholderDAO {
|
@Repository
|
||||||
|
public interface StakeholderDAO extends MongoRepository<Stakeholder, String> {
|
||||||
List<Stakeholder> findAll();
|
List<Stakeholder> findAll();
|
||||||
List<Stakeholder> findByType(String Type);
|
List<Stakeholder> findByType(String Type);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.SubCategory;
|
import eu.dnetlib.uoamonitorservice.entities.SubCategory;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface SubCategoryDAO {
|
@Repository
|
||||||
|
public interface SubCategoryDAO extends MongoRepository<SubCategory, String> {
|
||||||
List<SubCategory> findAll();
|
List<SubCategory> findAll();
|
||||||
List<SubCategory> findByDefaultId(String DefaultId);
|
List<SubCategory> findByDefaultId(String DefaultId);
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.dao;
|
package eu.dnetlib.uoamonitorservice.dao;
|
||||||
|
|
||||||
import eu.dnetlib.uoamonitorservice.entities.Topic;
|
import eu.dnetlib.uoamonitorservice.entities.Topic;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface TopicDAO {
|
@Repository
|
||||||
|
public interface TopicDAO extends MongoRepository<Topic, String> {
|
||||||
List<Topic> findAll();
|
List<Topic> findAll();
|
||||||
List<Topic> findByDefaultId(String DefaultId);
|
List<Topic> findByDefaultId(String DefaultId);
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,14 @@
|
||||||
package eu.dnetlib.uoamonitorservice.entities;
|
package eu.dnetlib.uoamonitorservice.entities;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.IndicatorPath;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.IndicatorSize;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.IndicatorType;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
enum IndicatorType {
|
|
||||||
// Do not rename or remove existring values. This may cause problems with already stored values in DB
|
|
||||||
number, chart,
|
|
||||||
NUMBER, CHART;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum IndicatorSize {
|
|
||||||
// Do not rename or remove existring values. This may cause problems with already stored values in DB
|
|
||||||
small, medium, large,
|
|
||||||
SMALL, MEDIUM, LARGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Indicator {
|
public class Indicator {
|
||||||
@Id
|
@Id
|
||||||
@JsonProperty("_id")
|
@JsonProperty("_id")
|
||||||
|
|
|
@ -1,18 +1,13 @@
|
||||||
package eu.dnetlib.uoamonitorservice.entities;
|
package eu.dnetlib.uoamonitorservice.entities;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.IndicatorType;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
enum SectionType {
|
|
||||||
// Do not rename or remove existring values. This may cause problems with already stored values in DB
|
|
||||||
number, chart,
|
|
||||||
NUMBER, CHART;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Section<StringOrIndicator> {
|
public class Section<StringOrIndicator> {
|
||||||
@Id
|
@Id
|
||||||
@JsonProperty("_id")
|
@JsonProperty("_id")
|
||||||
|
@ -21,7 +16,7 @@ public class Section<StringOrIndicator> {
|
||||||
private String title;
|
private String title;
|
||||||
private String defaultId;
|
private String defaultId;
|
||||||
private String stakeholderAlias;
|
private String stakeholderAlias;
|
||||||
private SectionType type;
|
private IndicatorType type;
|
||||||
private Date creationDate;
|
private Date creationDate;
|
||||||
private Date updateDate;
|
private Date updateDate;
|
||||||
private List<StringOrIndicator> indicators;
|
private List<StringOrIndicator> indicators;
|
||||||
|
@ -90,8 +85,7 @@ public class Section<StringOrIndicator> {
|
||||||
if(type == null) {
|
if(type == null) {
|
||||||
this.type = null;
|
this.type = null;
|
||||||
} else {
|
} else {
|
||||||
SectionType sectionType = SectionType.valueOf(type);
|
this.type = IndicatorType.valueOf(type);
|
||||||
this.type = sectionType;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,32 +1,14 @@
|
||||||
package eu.dnetlib.uoamonitorservice.entities;
|
package eu.dnetlib.uoamonitorservice.entities;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.Locale;
|
||||||
|
import eu.dnetlib.uoamonitorservice.primitives.StakeholderType;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
enum StakeholderType
|
|
||||||
{
|
|
||||||
// Do not rename or remove existing values. This may cause problems with already stored values in DB
|
|
||||||
funder, ri, project, organization,
|
|
||||||
country, researcher, datasource,
|
|
||||||
FUNDER, RI, PROJECT, ORGANIZATION,
|
|
||||||
COUNTRY, RESEARCHER, DATASOURCE;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Locale {
|
|
||||||
EN("en"), EU("eu");
|
|
||||||
|
|
||||||
public final String label;
|
|
||||||
|
|
||||||
Locale(String label) {
|
|
||||||
this.label = label;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class Stakeholder<StringOrTopic> {
|
public class Stakeholder<StringOrTopic> {
|
||||||
@Id
|
@Id
|
||||||
@JsonProperty("_id")
|
@JsonProperty("_id")
|
||||||
|
@ -84,14 +66,6 @@ public class Stakeholder<StringOrTopic> {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public StakeholderType getType() {
|
|
||||||
// return type;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setType(StakeholderType type) {
|
|
||||||
// this.type = type;
|
|
||||||
// }
|
|
||||||
|
|
||||||
public String getType() {
|
public String getType() {
|
||||||
if(type == null) {
|
if(type == null) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum Format {
|
||||||
|
NUMBER, PERCENTAGE
|
||||||
|
}
|
|
@ -1,22 +1,8 @@
|
||||||
package eu.dnetlib.uoamonitorservice.entities;
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
enum IndicatorPathType {
|
|
||||||
// Do not rename or remove existring values. This may cause problems with already stored values in DB
|
|
||||||
table, bar, column, pie, line, other,
|
|
||||||
TABLE, BAR, COLUMN, PIE, LINE, OTHER;
|
|
||||||
}
|
|
||||||
|
|
||||||
//enum SourceType {
|
|
||||||
// STATISTICS, SEARCH, METRICS, STATS_TOOL,OLD,IMAGE;
|
|
||||||
//}
|
|
||||||
|
|
||||||
enum Format {
|
|
||||||
NUMBER, PERCENTAGE
|
|
||||||
}
|
|
||||||
|
|
||||||
public class IndicatorPath {
|
public class IndicatorPath {
|
||||||
private IndicatorPathType type; // for charts is type of chart {table, bar, column, etc}
|
private IndicatorPathType type; // for charts is type of chart {table, bar, column, etc}
|
||||||
private Format format = Format.NUMBER; // for numbers is if number is percentage or not
|
private Format format = Format.NUMBER; // for numbers is if number is percentage or not
|
|
@ -0,0 +1,7 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum IndicatorPathType {
|
||||||
|
// Do not rename or remove existing values. This may cause problems with already stored values in DB
|
||||||
|
table, bar, column, pie, line, other,
|
||||||
|
TABLE, BAR, COLUMN, PIE, LINE, OTHER;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum IndicatorSize {
|
||||||
|
// Do not rename or remove existring values. This may cause problems with already stored values in DB
|
||||||
|
small, medium, large,
|
||||||
|
SMALL, MEDIUM, LARGE;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum IndicatorType {
|
||||||
|
// Do not rename or remove existing values. This may cause problems with already stored values in DB
|
||||||
|
number, chart,
|
||||||
|
NUMBER, CHART;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum Locale {
|
||||||
|
EN("en"), EU("eu");
|
||||||
|
|
||||||
|
public final String label;
|
||||||
|
|
||||||
|
Locale(String label) {
|
||||||
|
this.label = label;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package eu.dnetlib.uoamonitorservice.entities;
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.primitives;
|
||||||
|
|
||||||
|
public enum StakeholderType {
|
||||||
|
// Do not rename or remove existing values. This may cause problems with already stored values in DB
|
||||||
|
funder, ri, project, organization,
|
||||||
|
country, researcher, datasource,
|
||||||
|
FUNDER, RI, PROJECT, ORGANIZATION,
|
||||||
|
COUNTRY, RESEARCHER, DATASOURCE;
|
||||||
|
}
|
|
@ -25,31 +25,3 @@ monitorservice.globalVars.version=@version@
|
||||||
#production
|
#production
|
||||||
#monitorservice.userInfoUrl = https://services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=
|
#monitorservice.userInfoUrl = https://services.openaire.eu/uoa-user-management/api/users/getUserInfo?accessToken=
|
||||||
#monitorservice.originServer = .openaire.eu
|
#monitorservice.originServer = .openaire.eu
|
||||||
|
|
||||||
# Monitor
|
|
||||||
monitorservice.mongodb.host=localhost
|
|
||||||
monitorservice.mongodb.port=27017
|
|
||||||
monitorservice.mongodb.database=production
|
|
||||||
|
|
||||||
# Notification
|
|
||||||
notification.mongodb.host = localhost
|
|
||||||
notification.mongodb.port = 27017
|
|
||||||
notification.mongodb.database = openaire_notification
|
|
||||||
|
|
||||||
# Admin Tools Library
|
|
||||||
admintoolslibrary.mail.from = openaire.test@gmail.com
|
|
||||||
admintoolslibrary.mail.username = openaire.test@gmail.com
|
|
||||||
admintoolslibrary.mail.password = koujreltgjduicjp
|
|
||||||
admintoolslibrary.mail.host = smtp.gmail.com
|
|
||||||
admintoolslibrary.mail.port = 587
|
|
||||||
admintoolslibrary.mail.auth = true
|
|
||||||
admintoolslibrary.mail.sslProtocols = TLSv1.2
|
|
||||||
admintoolslibrary.mail.defaultEncoding=UTF-8
|
|
||||||
admintoolslibrary.mail.protocol=smtp
|
|
||||||
admintoolslibrary.mail.testConnection=false
|
|
||||||
admintoolslibrary.google.secret = 6LcVtFIUAAAAAIlEaz6Am2PBC3j5lHG7vBo6uW4_
|
|
||||||
|
|
||||||
# Authorization
|
|
||||||
authorization.security.userInfoUrl = http://mpagasas.di.uoa.gr:19080/login-service/userInfo
|
|
||||||
|
|
||||||
server.port=8888
|
|
Loading…
Reference in New Issue