new context api for IIS
This commit is contained in:
parent
a98c799c8b
commit
e87267e9e5
|
@ -50,6 +50,7 @@ import eu.dnetlib.openaire.exporter.model.community.CommunitySummary;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.CommunityWritableProperties;
|
import eu.dnetlib.openaire.exporter.model.community.CommunityWritableProperties;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.SubCommunity;
|
import eu.dnetlib.openaire.exporter.model.community.SubCommunity;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.selectioncriteria.SelectionCriteria;
|
import eu.dnetlib.openaire.exporter.model.community.selectioncriteria.SelectionCriteria;
|
||||||
|
import eu.dnetlib.openaire.exporter.model.context.IISConfigurationEntry;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@ConditionalOnProperty(value = "openaire.exporter.enable.community", havingValue = "true")
|
@ConditionalOnProperty(value = "openaire.exporter.enable.community", havingValue = "true")
|
||||||
|
@ -591,4 +592,24 @@ public class CommunityService {
|
||||||
dbCommunityRepository.deleteById(id);
|
dbCommunityRepository.deleteById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public List<IISConfigurationEntry> getIISConfiguration(final String id) throws CommunityException {
|
||||||
|
try {
|
||||||
|
final List<IISConfigurationEntry> res = new ArrayList<>();
|
||||||
|
|
||||||
|
res.add(dbCommunityRepository.findById(id)
|
||||||
|
.map(CommunityMappingUtils::asIISConfigurationEntry)
|
||||||
|
.orElseThrow(() -> new ResourceNotFoundException("Community not found: " + id)));
|
||||||
|
|
||||||
|
for (final DbSubCommunity subc : dbSubCommunityRepository.findByCommunity(id)) {
|
||||||
|
res.add(CommunityMappingUtils.asIISConfigurationEntry(subc));
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
} catch (final Throwable e) {
|
||||||
|
log.error(e);
|
||||||
|
throw new CommunityException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,55 +50,55 @@ import eu.dnetlib.openaire.exporter.model.context.Param;
|
||||||
public class CommunityImporterService {
|
public class CommunityImporterService {
|
||||||
|
|
||||||
// common
|
// common
|
||||||
private final static String OPENAIRE_ID = "openaireId";
|
public final static String OPENAIRE_ID = "openaireId";
|
||||||
private final static String PIPE_SEPARATOR = "||";
|
public final static String PIPE_SEPARATOR = "||";
|
||||||
private final static String ID_SEPARATOR = "::";
|
public final static String ID_SEPARATOR = "::";
|
||||||
private final static String CSV_DELIMITER = ",";
|
public final static String CSV_DELIMITER = ",";
|
||||||
private final static String CLABEL = "label";
|
public final static String CLABEL = "label";
|
||||||
|
|
||||||
// id suffixes
|
// id suffixes
|
||||||
private final static String PROJECTS_ID_SUFFIX = ID_SEPARATOR + "projects";
|
public final static String PROJECTS_ID_SUFFIX = ID_SEPARATOR + "projects";
|
||||||
private final static String CONTENTPROVIDERS_ID_SUFFIX = ID_SEPARATOR + "contentproviders";
|
public final static String CONTENTPROVIDERS_ID_SUFFIX = ID_SEPARATOR + "contentproviders";
|
||||||
private final static String ZENODOCOMMUNITY_ID_SUFFIX = ID_SEPARATOR + "zenodocommunities";
|
public final static String ZENODOCOMMUNITY_ID_SUFFIX = ID_SEPARATOR + "zenodocommunities";
|
||||||
private final static String ORGANIZATION_ID_SUFFIX = ID_SEPARATOR + "organizations";
|
public final static String ORGANIZATION_ID_SUFFIX = ID_SEPARATOR + "organizations";
|
||||||
|
|
||||||
// community summary
|
// community summary
|
||||||
private final static String CSUMMARY_DESCRIPTION = "description";
|
public final static String CSUMMARY_DESCRIPTION = "description";
|
||||||
private final static String CSUMMARY_LOGOURL = "logourl";
|
public final static String CSUMMARY_LOGOURL = "logourl";
|
||||||
private final static String CSUMMARY_STATUS = "status";
|
public final static String CSUMMARY_STATUS = "status";
|
||||||
private final static String CSUMMARY_NAME = "name";
|
public final static String CSUMMARY_NAME = "name";
|
||||||
private final static String CSUMMARY_MANAGER = "manager";
|
public final static String CSUMMARY_MANAGER = "manager";
|
||||||
private final static String CSUMMARY_ZENODOC = "zenodoCommunity";
|
public final static String CSUMMARY_ZENODOC = "zenodoCommunity";
|
||||||
|
|
||||||
// community profile
|
// community profile
|
||||||
private final static String CPROFILE_SUBJECT = "subject";
|
public final static String CPROFILE_SUBJECT = "subject";
|
||||||
private final static String CPROFILE_CREATIONDATE = "creationdate";
|
public final static String CPROFILE_CREATIONDATE = "creationdate";
|
||||||
private final static String CPROFILE_FOS = "fos";
|
public final static String CPROFILE_FOS = "fos";
|
||||||
private final static String CPROFILE_SDG = "sdg";
|
public final static String CPROFILE_SDG = "sdg";
|
||||||
private final static String CPROFILE_ADVANCED_CONSTRAINT = "advancedConstraints";
|
public final static String CPROFILE_ADVANCED_CONSTRAINT = "advancedConstraints";
|
||||||
private final static String CPROFILE_REMOVE_CONSTRAINT = "removeConstraints";
|
public final static String CPROFILE_REMOVE_CONSTRAINT = "removeConstraints";
|
||||||
private final static String CPROFILE_SUGGESTED_ACKNOWLEDGEMENT = "suggestedAcknowledgement";
|
public final static String CPROFILE_SUGGESTED_ACKNOWLEDGEMENT = "suggestedAcknowledgement";
|
||||||
|
|
||||||
// community project
|
// community project
|
||||||
private final static String CPROJECT_FUNDER = "funder";
|
public final static String CPROJECT_FUNDER = "funder";
|
||||||
private final static String CPROJECT_NUMBER = "CD_PROJECT_NUMBER";
|
public final static String CPROJECT_NUMBER = "CD_PROJECT_NUMBER";
|
||||||
private final static String CPROJECT_FULLNAME = "projectfullname";
|
public final static String CPROJECT_FULLNAME = "projectfullname";
|
||||||
private final static String CPROJECT_ACRONYM = "acronym";
|
public final static String CPROJECT_ACRONYM = "acronym";
|
||||||
|
|
||||||
// community content provider
|
// community content provider
|
||||||
private final static String CCONTENTPROVIDER_NAME = "name";
|
public final static String CCONTENTPROVIDER_NAME = "name";
|
||||||
private final static String CCONTENTPROVIDER_OFFICIALNAME = "officialname";
|
public final static String CCONTENTPROVIDER_OFFICIALNAME = "officialname";
|
||||||
private final static String CCONTENTPROVIDER_ENABLED = "enabled";
|
public final static String CCONTENTPROVIDER_ENABLED = "enabled";
|
||||||
private final static String CCONTENTPROVIDERENABLED_DEFAULT = "true";
|
public final static String CCONTENTPROVIDERENABLED_DEFAULT = "true";
|
||||||
private final static String CCONTENTPROVIDER_SELCRITERIA = "selcriteria";
|
public final static String CCONTENTPROVIDER_SELCRITERIA = "selcriteria";
|
||||||
|
|
||||||
// community zenodo community
|
// community zenodo community
|
||||||
private final static String CZENODOCOMMUNITY_ID = "zenodoid";
|
public final static String CZENODOCOMMUNITY_ID = "zenodoid";
|
||||||
|
|
||||||
// community organization
|
// community organization
|
||||||
private final static String CORGANIZATION_NAME = "name";
|
public final static String CORGANIZATION_NAME = "name";
|
||||||
private final static String CORGANIZATION_LOGOURL = "logourl";
|
public final static String CORGANIZATION_LOGOURL = "logourl";
|
||||||
private final static String CORGANIZATION_WEBSITEURL = "websiteurl";
|
public final static String CORGANIZATION_WEBSITEURL = "websiteurl";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DbOrganizationRepository dbOrganizationRepository;
|
private DbOrganizationRepository dbOrganizationRepository;
|
||||||
|
|
|
@ -15,6 +15,7 @@ import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
|
import eu.dnetlib.openaire.community.importer.CommunityImporterService;
|
||||||
import eu.dnetlib.openaire.community.model.DbCommunity;
|
import eu.dnetlib.openaire.community.model.DbCommunity;
|
||||||
import eu.dnetlib.openaire.community.model.DbDatasource;
|
import eu.dnetlib.openaire.community.model.DbDatasource;
|
||||||
import eu.dnetlib.openaire.community.model.DbProject;
|
import eu.dnetlib.openaire.community.model.DbProject;
|
||||||
|
@ -27,6 +28,7 @@ import eu.dnetlib.openaire.exporter.model.community.CommunityProject;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.CommunitySummary;
|
import eu.dnetlib.openaire.exporter.model.community.CommunitySummary;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.CommunityWritableProperties;
|
import eu.dnetlib.openaire.exporter.model.community.CommunityWritableProperties;
|
||||||
import eu.dnetlib.openaire.exporter.model.community.SubCommunity;
|
import eu.dnetlib.openaire.exporter.model.community.SubCommunity;
|
||||||
|
import eu.dnetlib.openaire.exporter.model.context.IISConfigurationEntry;
|
||||||
|
|
||||||
public class CommunityMappingUtils {
|
public class CommunityMappingUtils {
|
||||||
|
|
||||||
|
@ -252,4 +254,32 @@ public class CommunityMappingUtils {
|
||||||
return list != null ? list.toArray(new String[list.size()]) : new String[0];
|
return list != null ? list.toArray(new String[list.size()]) : new String[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IISConfigurationEntry asIISConfigurationEntry(final DbCommunity c) {
|
||||||
|
final IISConfigurationEntry conf = new IISConfigurationEntry();
|
||||||
|
conf.setId(c.getId());
|
||||||
|
conf.setLabel(c.getName());
|
||||||
|
conf.addParams(CommunityImporterService.CSUMMARY_DESCRIPTION, c.getDescription());
|
||||||
|
conf.addParams(CommunityImporterService.CSUMMARY_LOGOURL, c.getLogoUrl());
|
||||||
|
conf.addParams(CommunityImporterService.CSUMMARY_STATUS, c.getStatus().toString());
|
||||||
|
conf.addParams(CommunityImporterService.CSUMMARY_NAME, c.getName());
|
||||||
|
conf.addParams(CommunityImporterService.CSUMMARY_ZENODOC, c.getMainZenodoCommunity());
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_SUBJECT, c.getSubjects());
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_FOS, c.getFos());
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_SDG, c.getSdg());
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_ADVANCED_CONSTRAINT, c.getAdvancedConstraints() != null ? c.getAdvancedConstraints().toJson() : null);
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_REMOVE_CONSTRAINT, c.getRemoveConstraints() != null ? c.getRemoveConstraints().toJson() : null);
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_SUGGESTED_ACKNOWLEDGEMENT, c.getSuggestedAcknowledgements());
|
||||||
|
conf.addParams(CommunityImporterService.CPROFILE_CREATIONDATE, c.getCreationDate() != null ? c.getCreationDate().toString() : null);
|
||||||
|
return conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IISConfigurationEntry asIISConfigurationEntry(final DbSubCommunity subc) {
|
||||||
|
final IISConfigurationEntry conf = new IISConfigurationEntry();
|
||||||
|
conf.setId(subc.getId());
|
||||||
|
conf.setLabel(subc.getLabel());
|
||||||
|
if (subc.getParams() != null) {
|
||||||
|
conf.getParams().addAll(subc.getParams());
|
||||||
|
}
|
||||||
|
return conf;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package eu.dnetlib.openaire.context;
|
package eu.dnetlib.openaire.context;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -109,19 +108,8 @@ public class ContextApiController extends AbstractDnetController {
|
||||||
@ApiResponse(responseCode = "200", description = "OK"),
|
@ApiResponse(responseCode = "200", description = "OK"),
|
||||||
@ApiResponse(responseCode = "500", description = "unexpected error")
|
@ApiResponse(responseCode = "500", description = "unexpected error")
|
||||||
})
|
})
|
||||||
public List<IISConfigurationEntry> getIISConfiguration(
|
public List<IISConfigurationEntry> getIISConfiguration(@PathVariable final String contextId) throws CommunityException {
|
||||||
@PathVariable final String contextId) throws CommunityException {
|
return communityService.getIISConfiguration(contextId);
|
||||||
|
|
||||||
try {
|
|
||||||
// TODO, see ticket https://support.openaire.eu/issues/9019
|
|
||||||
// ritornare le informazioni solo dei context (root) e delle subCommunities
|
|
||||||
final List<IISConfigurationEntry> res = new ArrayList<>();
|
|
||||||
|
|
||||||
return res;
|
|
||||||
} catch (final Throwable e) {
|
|
||||||
log.error(e);
|
|
||||||
throw new CommunityException(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/context/category/{categoryId}", produces = {
|
@RequestMapping(value = "/context/category/{categoryId}", produces = {
|
||||||
|
|
|
@ -4,13 +4,15 @@ import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
public class IISConfigurationEntry implements Serializable {
|
public class IISConfigurationEntry implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -1470248262314248937L;
|
private static final long serialVersionUID = -1470248262314248937L;
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
private String label;
|
private String label;
|
||||||
private List<String> params = new ArrayList<>();
|
private List<Param> params = new ArrayList<>();
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
|
@ -28,12 +30,22 @@ public class IISConfigurationEntry implements Serializable {
|
||||||
this.label = label;
|
this.label = label;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getParams() {
|
public List<Param> getParams() {
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParams(final List<String> params) {
|
public void setParams(final List<Param> params) {
|
||||||
this.params = params;
|
this.params = params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addParams(final String name, final String... values) {
|
||||||
|
if (StringUtils.isNoneBlank(name) && values != null) {
|
||||||
|
for (final String v : values) {
|
||||||
|
if (StringUtils.isNotBlank(v)) {
|
||||||
|
params.add(new Param().setName(name).setValue(v));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue