argos/dmp-backend/web/src/main/java/eu/eudat/logic/managers/FunderManager.java

54 lines
2.6 KiB
Java

package eu.eudat.logic.managers;
import eu.eudat.data.query.items.item.funder.FunderCriteriaRequest;
import eu.eudat.logic.proxy.config.exceptions.HugeResultSet;
import eu.eudat.logic.proxy.config.exceptions.NoURLFound;
import eu.eudat.logic.proxy.fetching.RemoteFetcher;
import eu.eudat.logic.services.ApiContext;
import eu.eudat.models.data.external.ExternalSourcesItemModel;
import eu.eudat.models.data.external.ProjectsExternalSourcesModel;
import eu.eudat.models.data.funder.Funder;
import eu.eudat.models.data.project.Project;
import eu.eudat.models.data.security.Principal;
import eu.eudat.queryable.QueryableList;
import org.springframework.stereotype.Component;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@Component
public class FunderManager {
private ApiContext apiContext;
private RemoteFetcher remoteFetcher;
public FunderManager(ApiContext apiContext, RemoteFetcher remoteFetcher) {
this.apiContext = apiContext;
this.remoteFetcher = remoteFetcher;
}
public List<Funder> getCriteriaWithExternal(FunderCriteriaRequest funderCriteria, Principal principal) throws HugeResultSet, NoURLFound {
// eu.eudat.data.entities.UserInfo userInfo = new eu.eudat.data.entities.UserInfo();
// userInfo.setId(principal.getId());
// QueryableList<Funder> items = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getWithCritetia(projectCriteria.getCriteria());
// QueryableList<eu.eudat.data.entities.Project> authItems = apiContext.getOperationsContext().getDatabaseRepository().getProjectDao().getAuthenticated(items, userInfo);
// List<Project> projects = authItems.select(item -> new eu.eudat.models.data.project.Project().fromDataModel(item));
// List<Map<String, String>> remoteRepos = remoteFetcher.getProjects(projectCriteria.getCriteria().getLike());
// ProjectsExternalSourcesModel projectsExternalSourcesModel = new ProjectsExternalSourcesModel().fromExternalItem(remoteRepos);
// for (ExternalSourcesItemModel externalListingItem : projectsExternalSourcesModel) {
// eu.eudat.models.data.project.Project project = apiContext.getOperationsContext().getBuilderFactory().getBuilder(ProjectBuilder.class)
// .reference(externalListingItem.getRemoteId()).label(externalListingItem.getName())
// .description(externalListingItem.getDescription()).uri(externalListingItem.getUri())
// .abbreviation(externalListingItem.getAbbreviation()).status(eu.eudat.data.entities.Project.Status.fromInteger(0))
// .build();
//
// projects.add(project);
// }
// projects.sort(Comparator.comparing(x -> x.getLabel()));
// return projects;
return null;
}
}