[CommunityAPIExtention] fixed issues
This commit is contained in:
parent
e751759de9
commit
3549fdebf9
|
@ -22,6 +22,8 @@ public interface ISClient {
|
|||
|
||||
void updateContextParam(String id, String name, String value);
|
||||
|
||||
void updateContextParamNoEscape(String id, String name, String value);
|
||||
|
||||
void updateContextAttribute(String id, String name, String value);
|
||||
|
||||
void addConcept(String id, String categoryId, String data);
|
||||
|
|
|
@ -117,6 +117,18 @@ public class ISClientImpl implements ISClient {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@CacheEvict(value = {
|
||||
"context-cache", "context-cache-funder"
|
||||
}, allEntries = true)
|
||||
public void updateContextParamNoEscape(final String id, final String name, final String value) {
|
||||
try {
|
||||
_quickSeachProfile(getXQueryNoEscape(id, name, value));
|
||||
} catch (final ISLookUpException e) {
|
||||
throw new DsmRuntimeException(String.format("unable update context param [id: %s, name: %s, value: %s]", id, name, value), e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@CacheEvict(value = {
|
||||
"context-cache", "context-cache-funder"
|
||||
|
@ -211,6 +223,16 @@ public class ISClientImpl implements ISClient {
|
|||
}
|
||||
}
|
||||
|
||||
private String getXQueryNoEscape(final String id, final String name, final String value) {
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
return String.format("update replace collection('/db/DRIVER/ContextDSResources/ContextDSResourceType')" +
|
||||
"/RESOURCE_PROFILE/BODY/CONFIGURATION/context[./@id = '%s']/param[./@name = '%s'] with <param name='%s'>%s</param>", id, name, name, value);
|
||||
} else {
|
||||
return String.format("update replace collection('/db/DRIVER/ContextDSResources/ContextDSResourceType')" +
|
||||
"/RESOURCE_PROFILE/BODY/CONFIGURATION/context[./@id = '%s']/param[./@name = '%s'] with <param name='%s'/>", id, name, name);
|
||||
}
|
||||
}
|
||||
|
||||
private String getConceptXQuery(final String id, final String name, final String value) {
|
||||
final Escaper esc = XmlEscapers.xmlContentEscaper();
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
|
|
|
@ -10,6 +10,7 @@ import static eu.dnetlib.openaire.common.ExporterConstants.W;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import eu.dnetlib.openaire.community.selectioncriteria.SelectionCriteria;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
|
@ -387,7 +388,7 @@ public class CommunityApiController {
|
|||
@ApiResponse(responseCode = "500", description = "unexpected error") })
|
||||
public CommunityDetails addAdvancedConstraint(
|
||||
@PathVariable final String id,
|
||||
@RequestBody final String advancedConstraint) throws CommunityException, CommunityNotFoundException {
|
||||
@RequestBody final SelectionCriteria advancedConstraint) throws CommunityException, CommunityNotFoundException {
|
||||
|
||||
return communityApiCore.addCommunityAdvancedConstraint(id, advancedConstraint);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package eu.dnetlib.openaire.community;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import eu.dnetlib.openaire.community.selectioncriteria.SelectionCriteria;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
@ -82,7 +84,7 @@ public class CommunityApiCore {// implements CommunityClient{
|
|||
|
||||
}
|
||||
if (details.getAdvancedConstraint() != null) {
|
||||
isClient.updateContextParam(id, CPROFILE_ADVANCED_CONSTRAINT, details.getAdvancedConstraint());
|
||||
isClient.updateContextParamNoEscape(id, CPROFILE_ADVANCED_CONSTRAINT, "<![CDATA[" + new Gson().toJson(details.getAdvancedConstraint()) + "]]>");
|
||||
|
||||
}
|
||||
if (details.getMainZenodoCommunity() != null) {
|
||||
|
@ -310,7 +312,7 @@ public class CommunityApiCore {// implements CommunityClient{
|
|||
|
||||
current.addAll(sdgs);
|
||||
|
||||
cd.setFos(Lists.newArrayList(current));
|
||||
cd.setSdg(Lists.newArrayList(current));
|
||||
|
||||
setCommunity(id, CommunityWritableProperties.fromDetails(cd));
|
||||
|
||||
|
@ -325,16 +327,16 @@ public class CommunityApiCore {// implements CommunityClient{
|
|||
|
||||
current.removeAll(sdgs);
|
||||
|
||||
cd.setFos(Lists.newArrayList(current));
|
||||
cd.setSdg(Lists.newArrayList(current));
|
||||
|
||||
setCommunity(id, CommunityWritableProperties.fromDetails(cd));
|
||||
|
||||
return cd;
|
||||
}
|
||||
|
||||
public CommunityDetails addCommunityAdvancedConstraint(final String id, final String advancedCosntraint) throws CommunityException, CommunityNotFoundException {
|
||||
public CommunityDetails addCommunityAdvancedConstraint(final String id, final SelectionCriteria advancedCosntraint) throws CommunityException, CommunityNotFoundException {
|
||||
|
||||
final CommunityDetails cd = cc.getCommunity(id);
|
||||
final CommunityDetails cd = new CommunityDetails();
|
||||
|
||||
cd.setAdvancedConstraint(advancedCosntraint);
|
||||
|
||||
|
@ -345,9 +347,9 @@ public class CommunityApiCore {// implements CommunityClient{
|
|||
|
||||
public CommunityDetails removeCommunityAdvancedConstraint(final String id) throws CommunityException, CommunityNotFoundException {
|
||||
|
||||
final CommunityDetails cd = cc.getCommunity(id);
|
||||
|
||||
cd.setAdvancedConstraint(null);
|
||||
final CommunityDetails cd = new CommunityDetails();
|
||||
SelectionCriteria sl = new SelectionCriteria();
|
||||
cd.setAdvancedConstraint(sl);
|
||||
|
||||
setCommunity(id, CommunityWritableProperties.fromDetails(cd));
|
||||
|
||||
|
|
|
@ -2,7 +2,9 @@ package eu.dnetlib.openaire.community;
|
|||
|
||||
import com.google.common.base.Joiner;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.gson.Gson;
|
||||
import eu.dnetlib.openaire.common.ISClient;
|
||||
import eu.dnetlib.openaire.community.selectioncriteria.SelectionCriteria;
|
||||
import eu.dnetlib.openaire.context.Category;
|
||||
import eu.dnetlib.openaire.context.Concept;
|
||||
import eu.dnetlib.openaire.context.Context;
|
||||
|
@ -199,6 +201,23 @@ public class CommunityCommon {
|
|||
.setValue(Joiner.on(CSV_DELIMITER)
|
||||
.join(community.getSubjects()))));
|
||||
}
|
||||
if(community.getFos() != null){
|
||||
context.getParams()
|
||||
.replace(CPROFILE_FOS, Arrays.asList(new Param().setName(CPROFILE_FOS)
|
||||
.setValue(Joiner.on(CSV_DELIMITER)
|
||||
.join(community.getFos()))));
|
||||
}
|
||||
if(community.getSdg() != null){
|
||||
context.getParams()
|
||||
.replace(CPROFILE_SDG, Arrays.asList(new Param().setName(CPROFILE_SDG)
|
||||
.setValue(Joiner.on(CSV_DELIMITER)
|
||||
.join(community.getSdg()))));
|
||||
}
|
||||
if (community.getAdvancedConstraint() != null) {
|
||||
context.getParams()
|
||||
.replace(CPROFILE_ADVANCED_CONSTRAINT, Arrays.asList(new Param()
|
||||
.setName(CPROFILE_ADVANCED_CONSTRAINT).setValue(new Gson().toJson(community.getAdvancedConstraint()))));
|
||||
}
|
||||
if(community.getMainZenodoCommunity() != null){
|
||||
context.getParams()
|
||||
.replace(CSUMMARY_ZENODOC, Arrays.asList(new Param()
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
|
||||
import eu.dnetlib.openaire.community.selectioncriteria.SelectionCriteria;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@JsonAutoDetect
|
||||
|
@ -26,7 +27,7 @@ public class CommunityDetails extends CommunitySummary {
|
|||
private List<String> sdg;
|
||||
|
||||
@Schema(description = "list of advanced criteria to associate results to this community")
|
||||
private String advancedConstraint;
|
||||
private SelectionCriteria advancedConstraint;
|
||||
|
||||
|
||||
public CommunityDetails() {}
|
||||
|
@ -79,11 +80,11 @@ public class CommunityDetails extends CommunitySummary {
|
|||
this.sdg = sdg;
|
||||
}
|
||||
|
||||
public String getAdvancedConstraint() {
|
||||
public SelectionCriteria getAdvancedConstraint() {
|
||||
return advancedConstraint;
|
||||
}
|
||||
|
||||
public void setAdvancedConstraint(String advancedConstraint) {
|
||||
public void setAdvancedConstraint(SelectionCriteria advancedConstraint) {
|
||||
this.advancedConstraint = advancedConstraint;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,7 +69,7 @@ public class CommunityMappingUtils {
|
|||
p.setSdg(splitValues(asValues(params.get(CPROFILE_SDG)), CSV_DELIMITER));
|
||||
}
|
||||
if (params.containsKey(CPROFILE_ADVANCED_CONSTRAINT)) {
|
||||
p.setAdvancedConstraint(asCsv(params.get(CPROFILE_ADVANCED_CONSTRAINT)));
|
||||
p.setAdvancedConstraint(SelectionCriteria.fromJson(asCsv(params.get(CPROFILE_ADVANCED_CONSTRAINT))));
|
||||
}
|
||||
if (params.containsKey(CPROFILE_CREATIONDATE)){
|
||||
try {
|
||||
|
|
|
@ -4,8 +4,11 @@ import java.util.List;
|
|||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
|
||||
import eu.dnetlib.openaire.community.selectioncriteria.SelectionCriteria;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import javax.persistence.criteria.Selection;
|
||||
|
||||
@JsonAutoDetect
|
||||
public class CommunityWritableProperties {
|
||||
|
||||
|
@ -31,7 +34,7 @@ public class CommunityWritableProperties {
|
|||
private List<String> sdg;
|
||||
|
||||
@Schema(description = "Advanced constraint for the association of results to the community")
|
||||
private String advancedConstraint;
|
||||
private SelectionCriteria advancedConstraint;
|
||||
|
||||
|
||||
@Schema(description = "status of the community, drives its visibility")
|
||||
|
@ -71,11 +74,11 @@ public class CommunityWritableProperties {
|
|||
this.sdg = sdg;
|
||||
}
|
||||
|
||||
public String getAdvancedConstraint() {
|
||||
public SelectionCriteria getAdvancedConstraint() {
|
||||
return advancedConstraint;
|
||||
}
|
||||
|
||||
public void setAdvancedConstraint(String advancedConstraint) {
|
||||
public void setAdvancedConstraint(SelectionCriteria advancedConstraint) {
|
||||
this.advancedConstraint = advancedConstraint;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ management.endpoints.web.base-path = /
|
|||
management.endpoints.web.path-mapping.prometheus = metrics
|
||||
management.endpoints.web.path-mapping.health = health
|
||||
|
||||
|
||||
apps/dnet-exporter-api/src/main/java/eu/dnetlib/openaire/community/CommunityApiController.java
|
||||
# ENABLE / DISABLE CONTROLLERS
|
||||
openaire.exporter.enable.dsm = true
|
||||
openaire.exporter.enable.community = true
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
services.is.host = localhost
|
||||
services.is.port = 8280
|
||||
services.is.protocol = http
|
||||
services.is.context = app
|
||||
#services.is.host = localhost
|
||||
services.is.host = dev-openaire.d4science.org
|
||||
#services.is.port = 8280
|
||||
services.is.port = 443
|
||||
#services.is.protocol = http
|
||||
services.is.protocol = https
|
||||
#services.is.context = app
|
||||
services.is.context = is
|
||||
#services.is.baseurl = ${services.is.protocol}://${services.is.host}:${services.is.port}/${services.is.context}/services
|
||||
services.is.baseurl = ${services.is.protocol}://${services.is.host}:${services.is.port}/${services.is.context}/services
|
||||
|
||||
openaire.exporter.isLookupUrl = ${services.is.baseurl}/isLookUp
|
||||
|
@ -15,7 +20,8 @@ openaire.exporter.cxfClientConnectTimeout = 60000
|
|||
openaire.exporter.cxfClientReceiveTimeout = 120000
|
||||
|
||||
# JDBC
|
||||
openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dnet_openaireplus
|
||||
#openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dnet_openaireplus
|
||||
openaire.exporter.jdbc.url = jdbc:postgresql://localhost:5432/dev_openaire_8280
|
||||
openaire.exporter.jdbc.user = dnetapi
|
||||
openaire.exporter.jdbc.pwd = dnetPwd
|
||||
openaire.exporter.jdbc.minIdle = 1
|
||||
|
|
Loading…
Reference in New Issue