Add copy true in dao when find profiles with specific defaultId.

This commit is contained in:
Konstantinos Triantafyllou 2024-04-15 10:42:39 +03:00
parent c4d33a2486
commit 6b5ae3512f
6 changed files with 18 additions and 22 deletions

View File

@ -12,11 +12,12 @@ public interface StakeholderDAO extends MongoRepository<Stakeholder, String> {
List<Stakeholder> findAll();
List<Stakeholder> findByType(String Type);
List<Stakeholder> findByDefaultId(String DefaultId);
List<Stakeholder> findByDefaultIdIsNull();
List<Stakeholder> findByDefaultIdAndCopyTrue(String defaultId);
List<Stakeholder> findByDefaultIdAndType(String DefaultId, String Type);
List<Stakeholder> findByDefaultIdNot(String DefaultId);
List<Stakeholder> findByDefaultIdNotAndType(String DefaultId, String Type);
List<Stakeholder> findByDefaultIdIsNotNull();
List<Stakeholder> findByDefaultIdIsNotNullAndType(String Type);
List<Stakeholder> findByTopicsContaining(String topic);

View File

@ -150,7 +150,7 @@ public class CategoryService {
}
public void reorderChildren(Stakeholder defaultStakeholder, Category defaultCategory, List<String> defaultSubCategories) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultCategory.getId()).stream().map(category -> this.getFullCategory(stakeholder.getType(), stakeholder.getAlias(), category)).forEach(category -> {
this.reorderSubCategories(stakeholder, new Category(category),
this.commonService.reorder(defaultSubCategories, category.getSubCategories().stream().map(subCategory -> (Common) subCategory).collect(Collectors.toList())));

View File

@ -2,10 +2,7 @@ package eu.dnetlib.uoamonitorservice.service;
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
import eu.dnetlib.uoamonitorservice.dao.*;
import eu.dnetlib.uoamonitorservice.dto.MoveIndicator;
import eu.dnetlib.uoamonitorservice.dto.SectionFull;
import eu.dnetlib.uoamonitorservice.dto.SubCategoryFull;
import eu.dnetlib.uoamonitorservice.entities.Indicator;
import eu.dnetlib.uoamonitorservice.entities.Section;
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
import eu.dnetlib.uoamonitorservice.entities.SubCategory;
@ -176,7 +173,7 @@ public class SectionService {
}
public void reorderChildren(Stakeholder defaultStakeholder, Section defaultSection, List<String> defaultIndicators) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultSection.getId()).stream().map(section -> this.getFullSection(stakeholder.getType(), stakeholder.getAlias(), section)).forEach(section -> {
this.reorderIndicators(stakeholder, new Section(section),
this.commonService.reorder(defaultIndicators, section.getIndicators().stream().map(indicator -> (Common) indicator).collect(Collectors.toList())));

View File

@ -36,7 +36,7 @@ public class StakeholderService {
}
public List<Stakeholder> findByDefaultId(String id) {
return this.dao.findByDefaultId(id);
return this.dao.findByDefaultIdAndCopyTrue(id);
}
public Stakeholder findByPath(String stakeholderId) {
@ -58,7 +58,7 @@ public class StakeholderService {
}
public List<Stakeholder> getAllDefaultByRole(String type) {
return (type == null ? this.dao.findByDefaultId(null) : this.dao.findByDefaultIdAndType(null, type)).stream()
return (type == null ? this.dao.findByDefaultIdIsNull() : this.dao.findByDefaultIdAndType(null, type)).stream()
.filter(stakeholder -> this.commonService.hasAccessAuthority(stakeholder.getType(), stakeholder.getAlias(), true))
.collect(Collectors.toList());
}
@ -68,11 +68,11 @@ public class StakeholderService {
if (type != null && defaultId != null) {
stakeholders = dao.findByDefaultIdAndType(defaultId, type);
} else if (defaultId != null) {
stakeholders = dao.findByDefaultId(defaultId);
stakeholders = dao.findByDefaultIdAndCopyTrue(defaultId);
} else if (type != null) {
stakeholders = dao.findByDefaultIdNotAndType(null, type);
stakeholders = dao.findByDefaultIdIsNotNullAndType(type);
} else {
stakeholders = dao.findByDefaultIdNot(null);
stakeholders = dao.findByDefaultIdIsNotNull();
}
return stakeholders.stream().filter(stakeholder ->
(!manage && (stakeholder.getVisibility() == Visibility.PUBLIC || stakeholder.getVisibility() == Visibility.RESTRICTED))
@ -163,7 +163,7 @@ public class StakeholderService {
}
public void reorderChildren(Stakeholder defaultStakeholder, List<String> defaultTopics) {
this.dao.findByDefaultId(defaultStakeholder.getId()).stream().map(this::getFullStakeholder).forEach(stakeholder -> {
this.dao.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).stream().map(this::getFullStakeholder).forEach(stakeholder -> {
this.reorderTopics(new Stakeholder(stakeholder),
this.commonService.reorder(defaultTopics, stakeholder.getTopics().stream().map(topic -> (Common) topic).collect(Collectors.toList())));
});
@ -172,7 +172,7 @@ public class StakeholderService {
public String delete(String id) {
Stakeholder stakeholder = this.findByPath(id);
if (this.commonService.hasDeleteAuthority(stakeholder.getType())) {
this.dao.findByDefaultId(stakeholder.getId()).forEach(child -> {
this.dao.findByDefaultIdAndCopyTrue(stakeholder.getId()).forEach(child -> {
this.delete(child.getId());
});
stakeholder.getTopics().forEach(topicId -> {

View File

@ -13,9 +13,7 @@ import eu.dnetlib.uoamonitorservice.entities.*;
import eu.dnetlib.uoamonitorservice.generics.Common;
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
import eu.dnetlib.uoamonitorservice.handlers.PathNotValidException;
import eu.dnetlib.uoamonitorservice.primitives.IndicatorType;
import eu.dnetlib.uoamonitorservice.primitives.Visibility;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -160,7 +158,7 @@ public class SubCategoryService {
}
public void moveIndicatorChildren(Stakeholder defaultStakeholder, SubCategory defaultSubCategory, MoveIndicator moveIndicator) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultSubCategory.getId()).stream()
.map(subCategory -> this.getFullSubCategory(stakeholder.getType(), stakeholder. getAlias(), subCategory))
.collect(Collectors.toList()).forEach(subCategory -> {
@ -213,7 +211,7 @@ public class SubCategoryService {
}
public void reorderChildrenNumbers(Stakeholder defaultStakeholder, SubCategory defaultSubCategory, List<String> defaultSections) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultSubCategory.getId()).stream().map(subCategory -> this.getFullSubCategory(stakeholder.getType(), stakeholder.getAlias(), subCategory)).forEach(subCategory -> {
this.reorderNumbers(stakeholder, new SubCategory(subCategory),
this.commonService.reorder(defaultSections, subCategory.getNumbers().stream().map(section -> (Common) section).collect(Collectors.toList())));
@ -222,7 +220,7 @@ public class SubCategoryService {
}
public void reorderChildrenCharts(Stakeholder defaultStakeholder, SubCategory defaultSubCategory, List<String> defaultSections) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultSubCategory.getId()).stream().map(subCategory -> this.getFullSubCategory(stakeholder.getType(), stakeholder.getAlias(), subCategory)).forEach(subCategory -> {
this.reorderCharts(stakeholder, new SubCategory(subCategory),
this.commonService.reorder(defaultSections, subCategory.getCharts().stream().map(section -> (Common) section).collect(Collectors.toList())));

View File

@ -109,7 +109,7 @@ public class TopicService {
}
public void createChildren(Stakeholder defaultStakeholder, Topic topic) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.save(stakeholder, topic.copy());
});
}
@ -137,7 +137,7 @@ public class TopicService {
}
public void reorderChildren(Stakeholder defaultStakeholder, Topic defaultTopic, List<String> defaultCategories) {
this.stakeholderDAO.findByDefaultId(defaultStakeholder.getId()).forEach(stakeholder -> {
this.stakeholderDAO.findByDefaultIdAndCopyTrue(defaultStakeholder.getId()).forEach(stakeholder -> {
this.dao.findByDefaultId(defaultTopic.getId()).stream().map(topic -> this.getFullTopic(stakeholder.getType(), stakeholder.getAlias(), topic)).forEach(topic -> {
this.reorderCategories(stakeholder, new Topic(topic),
this.commonService.reorder(defaultCategories, topic.getCategories().stream().map(category -> (Common) category).collect(Collectors.toList())));