Merge remote-tracking branch 'origin/dmp-refactoring' into dmp-refactoring
This commit is contained in:
commit
49e34f9abc
|
@ -50,7 +50,8 @@ public class AuditableAction {
|
|||
public static final EventId DescriptionTemplate_PersistNewVersion = new EventId(8005, "DescriptionTemplate_PersistNewVersion");
|
||||
public static final EventId DescriptionTemplate_GetXml = new EventId(8006, "DescriptionTemplate_GetXml");
|
||||
public static final EventId DescriptionTemplate_Import = new EventId(8007, "DescriptionTemplate_Import");
|
||||
|
||||
public static final EventId DescriptionTemplate_GetSemantics = new EventId(8007, "DescriptionTemplate_GetSemantics");
|
||||
|
||||
public static final EventId SupportiveMaterial_Query = new EventId(9000, "SupportiveMaterial_Query");
|
||||
public static final EventId SupportiveMaterial_Lookup = new EventId(9001, "SupportiveMaterial_Lookup");
|
||||
public static final EventId SupportiveMaterial_Persist = new EventId(9002, "SupportiveMaterial_Persist");
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package eu.eudat.commons.config.filepath;
|
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties(FilePathsProperties.class)
|
||||
public class FilePathsConfiguration {
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
package eu.eudat.commons.config.filepath;
|
||||
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
@ConfigurationProperties(prefix = "file-paths")
|
||||
public class FilePathsProperties {
|
||||
private String externalUrls;
|
||||
private String semantics;
|
||||
private String h2020template;
|
||||
private String h2020DatasetTemplate;
|
||||
private String pidLinks;
|
||||
|
||||
public String getExternalUrls() {
|
||||
return externalUrls;
|
||||
}
|
||||
|
||||
public void setExternalUrls(String externalUrls) {
|
||||
this.externalUrls = externalUrls;
|
||||
}
|
||||
|
||||
public String getSemantics() {
|
||||
return semantics;
|
||||
}
|
||||
|
||||
public void setSemantics(String semantics) {
|
||||
this.semantics = semantics;
|
||||
}
|
||||
|
||||
public String getH2020template() {
|
||||
return h2020template;
|
||||
}
|
||||
|
||||
public void setH2020template(String h2020template) {
|
||||
this.h2020template = h2020template;
|
||||
}
|
||||
|
||||
public String getH2020DatasetTemplate() {
|
||||
return h2020DatasetTemplate;
|
||||
}
|
||||
|
||||
public void setH2020DatasetTemplate(String h2020DatasetTemplate) {
|
||||
this.h2020DatasetTemplate = h2020DatasetTemplate;
|
||||
}
|
||||
|
||||
public String getPidLinks() {
|
||||
return pidLinks;
|
||||
}
|
||||
|
||||
public void setPidLinks(String pidLinks) {
|
||||
this.pidLinks = pidLinks;
|
||||
}
|
||||
}
|
||||
|
|
@ -17,6 +17,7 @@ import javax.management.InvalidApplicationException;
|
|||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public interface DescriptionTemplateService {
|
||||
|
@ -27,4 +28,8 @@ public interface DescriptionTemplateService {
|
|||
DescriptionTemplate createNewVersion(NewVersionDescriptionTemplatePersist model, FieldSet fields) throws MyForbiddenException, MyValidationException, MyApplicationException, MyNotFoundException, InvalidApplicationException, JAXBException, ParserConfigurationException, JsonProcessingException, TransformerException;
|
||||
DescriptionTemplate importXml(byte[] bytes, UUID id, String label, FieldSet fields) throws MyForbiddenException, MyNotFoundException, JAXBException, ParserConfigurationException, TransformerException, InvalidApplicationException, IOException, InstantiationException, IllegalAccessException, SAXException;
|
||||
ResponseEntity<byte[]> exportXml(UUID id) throws MyForbiddenException, MyNotFoundException, JAXBException, ParserConfigurationException, IOException, InstantiationException, IllegalAccessException, SAXException, TransformerException, InvalidApplicationException;
|
||||
|
||||
List<String> getSemantics(String query) throws IOException;
|
||||
|
||||
List<Semantic> getSemantics() throws IOException;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,9 @@ package eu.eudat.service.descriptiontemplate;
|
|||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import eu.eudat.authorization.AuthorizationFlags;
|
||||
import eu.eudat.authorization.Permission;
|
||||
import eu.eudat.commons.JsonHandlingService;
|
||||
import eu.eudat.commons.XmlHandlingService;
|
||||
import eu.eudat.commons.config.filepath.FilePathsProperties;
|
||||
import eu.eudat.commons.enums.DescriptionTemplateStatus;
|
||||
import eu.eudat.commons.enums.FieldType;
|
||||
import eu.eudat.commons.enums.IsActive;
|
||||
|
@ -11,7 +13,6 @@ import eu.eudat.commons.enums.UserDescriptionTemplateRole;
|
|||
import eu.eudat.commons.scope.user.UserScope;
|
||||
import eu.eudat.commons.types.descriptiontemplate.*;
|
||||
import eu.eudat.commons.types.descriptiontemplate.fielddata.BaseFieldDataEntity;
|
||||
import eu.eudat.commons.types.descriptiontemplate.fielddata.FieldDataHelper;
|
||||
import eu.eudat.commons.types.descriptiontemplate.importexport.*;
|
||||
import eu.eudat.convention.ConventionService;
|
||||
import eu.eudat.data.DescriptionTemplateEntity;
|
||||
|
@ -62,13 +63,15 @@ import org.springframework.context.i18n.LocaleContextHolder;
|
|||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import javax.management.InvalidApplicationException;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Instant;
|
||||
import java.util.ArrayList;
|
||||
|
@ -79,6 +82,7 @@ import java.util.stream.Collectors;
|
|||
|
||||
@Service
|
||||
public class DescriptionTemplateServiceImpl implements DescriptionTemplateService {
|
||||
private List<Semantic> semantics = null;
|
||||
|
||||
private static final LoggerService logger = new LoggerService(LoggerFactory.getLogger(DescriptionTemplateServiceImpl.class));
|
||||
|
||||
|
@ -100,6 +104,8 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
private final MailService mailService;
|
||||
private final Environment environment;
|
||||
private final ResponseUtilsService responseUtilsService;
|
||||
private final FilePathsProperties filePathsProperties;
|
||||
private final JsonHandlingService jsonHandlingService;
|
||||
|
||||
@Autowired
|
||||
public DescriptionTemplateServiceImpl(
|
||||
|
@ -110,7 +116,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
ConventionService conventionService,
|
||||
MessageSource messageSource,
|
||||
XmlHandlingService xmlHandlingService,
|
||||
FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors, ValidationService validationService, MailService mailService, Environment environment, ResponseUtilsService responseUtilsService) {
|
||||
FieldDataHelperServiceProvider fieldDataHelperServiceProvider, QueryFactory queryFactory, ErrorThesaurusProperties errors, ValidationService validationService, MailService mailService, Environment environment, ResponseUtilsService responseUtilsService, FilePathsProperties filePathsProperties, JsonHandlingService jsonHandlingService) {
|
||||
this.entityManager = entityManager;
|
||||
this.userScope = userScope;
|
||||
this.authorizationService = authorizationService;
|
||||
|
@ -126,6 +132,8 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
this.mailService = mailService;
|
||||
this.environment = environment;
|
||||
this.responseUtilsService = responseUtilsService;
|
||||
this.filePathsProperties = filePathsProperties;
|
||||
this.jsonHandlingService = jsonHandlingService;
|
||||
}
|
||||
|
||||
//region Persist
|
||||
|
@ -648,6 +656,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
|
||||
//region Export
|
||||
|
||||
@Override
|
||||
public ResponseEntity<byte[]> exportXml(UUID id) throws MyForbiddenException, MyNotFoundException, JAXBException, ParserConfigurationException, IOException, InstantiationException, IllegalAccessException, SAXException, TransformerException, InvalidApplicationException {
|
||||
logger.debug(new MapLogEntry("persisting data").And("id", id));
|
||||
|
||||
|
@ -660,7 +669,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
return this.responseUtilsService.buildResponseFileFromText(xml, data.getLabel() + ".xml");
|
||||
}
|
||||
|
||||
public DescriptionTemplateImportExport definitionXmlToExport(DescriptionTemplateEntity data, DefinitionEntity entity){
|
||||
private DescriptionTemplateImportExport definitionXmlToExport(DescriptionTemplateEntity data, DefinitionEntity entity){
|
||||
DescriptionTemplateImportExport xml = new DescriptionTemplateImportExport();
|
||||
xml.setType(data.getType());
|
||||
xml.setLanguage(data.getLanguage());
|
||||
|
@ -674,7 +683,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
return xml;
|
||||
}
|
||||
|
||||
public PageImportExport pageXmlToExport(PageEntity entity, List<SectionEntity> sectionEntities){
|
||||
private PageImportExport pageXmlToExport(PageEntity entity, List<SectionEntity> sectionEntities){
|
||||
PageImportExport xml = new PageImportExport();
|
||||
xml.setId(entity.getId());
|
||||
xml.setOrdinal(entity.getOrdinal());
|
||||
|
@ -692,7 +701,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
return xml;
|
||||
}
|
||||
|
||||
public SectionImportExport sectionXmlToExport(SectionEntity entity) {
|
||||
private SectionImportExport sectionXmlToExport(SectionEntity entity) {
|
||||
SectionImportExport xml = new SectionImportExport();
|
||||
List<SectionImportExport> sectionsListEntity = new LinkedList<>();
|
||||
|
||||
|
@ -721,7 +730,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
}
|
||||
|
||||
|
||||
public FieldSetImportExport fieldSetXmlToExport(FieldSetEntity entity) {
|
||||
private FieldSetImportExport fieldSetXmlToExport(FieldSetEntity entity) {
|
||||
FieldSetImportExport fieldSet1Entity = new FieldSetImportExport();
|
||||
fieldSet1Entity.setId(entity.getId());
|
||||
fieldSet1Entity.setOrdinal(entity.getOrdinal());
|
||||
|
@ -743,7 +752,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
}
|
||||
|
||||
|
||||
public FieldImportExport fieldXmlToExport(FieldEntity entity) {
|
||||
private FieldImportExport fieldXmlToExport(FieldEntity entity) {
|
||||
FieldImportExport xml = new FieldImportExport();
|
||||
xml.setId(entity.getId());
|
||||
xml.setOrdinal(entity.getOrdinal());
|
||||
|
@ -766,7 +775,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
return xml;
|
||||
}
|
||||
|
||||
public RuleImportExport toRuleModel(RuleEntity entity){
|
||||
private RuleImportExport toRuleModel(RuleEntity entity){
|
||||
RuleImportExport xml = new RuleImportExport();
|
||||
xml.setTarget(entity.getTarget());
|
||||
xml.setValue(entity.getValue());
|
||||
|
@ -774,7 +783,7 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
}
|
||||
|
||||
|
||||
public MultiplicityImportXml multiplicityXmlToExport(MultiplicityEntity entity) {
|
||||
private MultiplicityImportXml multiplicityXmlToExport(MultiplicityEntity entity) {
|
||||
MultiplicityImportXml xml = new MultiplicityImportXml();
|
||||
xml.setMax(entity.getMax());
|
||||
xml.setMin(entity.getMin());
|
||||
|
@ -784,5 +793,58 @@ public class DescriptionTemplateServiceImpl implements DescriptionTemplateServic
|
|||
}
|
||||
|
||||
//endregion
|
||||
|
||||
//region
|
||||
|
||||
@Override
|
||||
public List<String> getSemantics(String query) throws IOException {
|
||||
List<Semantic> semantics = this.getSemantics();
|
||||
List<String> filteredSemantics = semantics.stream().map(Semantic::getName).collect(Collectors.toList());
|
||||
if(query != null && !query.isEmpty()){
|
||||
filteredSemantics = semantics.stream().filter(x -> x.getCategory().contains(query) || x.getName().contains(query)).map(Semantic::getName).collect(Collectors.toList());
|
||||
}
|
||||
return filteredSemantics;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Semantic> getSemantics() throws IOException {
|
||||
this.authorizationService.authorizeForce(Permission.BrowseDescriptionTemplate);
|
||||
|
||||
if (semantics == null) {
|
||||
semantics = new ArrayList<>();
|
||||
this.loadSemantics();
|
||||
}
|
||||
return semantics;
|
||||
}
|
||||
|
||||
private void loadSemantics() throws IOException {
|
||||
String filePath = this.filePathsProperties.getSemantics();
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
if (filePath != null) {
|
||||
InputStream stream = null;
|
||||
try {
|
||||
stream = getStreamFromPath(filePath);
|
||||
String json = new String(getStreamFromPath(filePath).readAllBytes(), StandardCharsets.UTF_8);
|
||||
semantics = List.of(jsonHandlingService.fromJson(Semantic[].class, json));
|
||||
}
|
||||
catch (IOException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
finally {
|
||||
if (stream != null) stream.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private InputStream getStreamFromPath(String filePath) {
|
||||
try {
|
||||
return new FileInputStream(filePath);
|
||||
} catch (FileNotFoundException e) {
|
||||
logger.info("loading from classpath");
|
||||
return getClass().getClassLoader().getResourceAsStream(filePath);
|
||||
}
|
||||
}
|
||||
|
||||
//endregion
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package eu.eudat.logic.proxy.config;
|
||||
package eu.eudat.service.descriptiontemplate;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
|
@ -1,225 +0,0 @@
|
|||
package eu.eudat.controllers;
|
||||
|
||||
import eu.eudat.authorization.Permission;
|
||||
import eu.eudat.commons.scope.user.UserScope;
|
||||
import eu.eudat.data.DescriptionTemplateEntity;
|
||||
import eu.eudat.logic.managers.DatasetProfileManager;
|
||||
import eu.eudat.logic.managers.MetricsManager;
|
||||
import eu.eudat.logic.managers.UserManager;
|
||||
import eu.eudat.logic.proxy.config.configloaders.ConfigLoader;
|
||||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.models.data.helpers.responses.ResponseItem;
|
||||
import eu.eudat.query.DescriptionTemplateTypeQuery;
|
||||
import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService;
|
||||
import eu.eudat.service.fielddatahelper.FieldDataHelperService;
|
||||
import eu.eudat.types.ApiMessageCode;
|
||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
||||
import gr.cite.tools.data.query.QueryFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import jakarta.transaction.Transactional;
|
||||
|
||||
import javax.management.InvalidApplicationException;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@RestController
|
||||
@CrossOrigin
|
||||
@RequestMapping(value = {"/api/admin/"})
|
||||
public class Admin extends BaseController {
|
||||
|
||||
private DatasetProfileManager datasetProfileManager;
|
||||
private UserManager userManager;
|
||||
private ConfigLoader configLoader;
|
||||
private final MetricsManager metricsManager;
|
||||
private final AuthorizationService authorizationService;
|
||||
private final UserScope userScope;
|
||||
private final QueryFactory queryFactory;
|
||||
|
||||
private final DescriptionTemplateTypeService descriptionTemplateTypeService;
|
||||
|
||||
//private final FieldDataHelperService fieldDataHelperService;
|
||||
|
||||
@Autowired
|
||||
public Admin(ApiContext apiContext, DatasetProfileManager datasetProfileManager, UserManager userManager/*, Logger logger*/, ConfigLoader configLoader, MetricsManager metricsManager, AuthorizationService authorizationService, UserScope userScope, QueryFactory queryFactory, DescriptionTemplateTypeService descriptionTemplateTypeService/*, FieldDataHelperService fieldDataHelperService*/) {
|
||||
super(apiContext);
|
||||
this.datasetProfileManager = datasetProfileManager;
|
||||
this.userManager = userManager;
|
||||
this.configLoader = configLoader;
|
||||
this.metricsManager = metricsManager;
|
||||
this.authorizationService = authorizationService;
|
||||
this.userScope = userScope;
|
||||
this.queryFactory = queryFactory;
|
||||
this.descriptionTemplateTypeService = descriptionTemplateTypeService;
|
||||
//this.fieldDataHelperService = fieldDataHelperService;
|
||||
}
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/addDmp"}, consumes = "application/json", produces = "application/json")
|
||||
// public ResponseEntity<Object> addDmp(@Valid @RequestBody DatasetProfile profile) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// //this.getLoggerService().info(principal, "Admin Added Dataset Profile");
|
||||
// DatasetProfile shortenProfile = profile.toShort();
|
||||
// DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(shortenProfile, getApiContext(), descriptionTemplateTypeService);
|
||||
//// modelDefinition.setType(getApiContext().getOperationsContext().getDatabaseRepository().getDescriptionTemplateTypeDao().findFromName(profile.getType()));
|
||||
////TODO: dtziotzios modelDefinition.setType(descriptionTemplateTypeService.getEntityByName(profile.getType()));
|
||||
// modelDefinition.setGroupId(UUID.randomUUID());
|
||||
// modelDefinition.setVersion((short) 0);
|
||||
//
|
||||
// DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition);
|
||||
// UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity();
|
||||
// userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId());
|
||||
// UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(this.userScope.getUserId());
|
||||
// userDatasetProfile.setUser(userInfo.getId());
|
||||
// userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner);
|
||||
// getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
|
||||
// datasetProfileManager.storeDatasetProfileUsers(descriptionTemplateEntity, profile);
|
||||
//
|
||||
// metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricsManager.datasetTemplateStatus.get(descriptionTemplateEntity.getStatus()) );
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId());
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/addDmp/{id}"}, consumes = "application/json", produces = "application/json")
|
||||
// public ResponseEntity<ResponseItem<UUID>> updateDmp(@PathVariable String id, @RequestBody DatasetProfile profile) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// DatasetProfile shortenProfile = profile.toShort();
|
||||
// DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(shortenProfile, getApiContext(), descriptionTemplateTypeService);
|
||||
// DescriptionTemplateEntity datasetprofile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id));
|
||||
// datasetprofile.setDefinition(modelDefinition.getDefinition());
|
||||
// DescriptionTemplateStatus oldStatus = datasetprofile.getStatus();
|
||||
// datasetprofile.setStatus(modelDefinition.getStatus());
|
||||
// datasetprofile.setLabel(modelDefinition.getLabel());
|
||||
// datasetprofile.setDescription(modelDefinition.getDescription());
|
||||
// datasetprofile.setLanguage(modelDefinition.getLanguage());
|
||||
// DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(datasetprofile);
|
||||
// datasetProfileManager.storeDatasetProfileUsers(descriptionTemplateEntity, profile);
|
||||
// if (DescriptionTemplateStatus.Finalized.equals(descriptionTemplateEntity.getStatus()) && DescriptionTemplateStatus.Draft.equals(oldStatus)) {
|
||||
// metricsManager.increaseValue(MetricNames.DATASET_TEMPLATE, 1, MetricNames.ACTIVE);
|
||||
// }
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<UUID>().status(ApiMessageCode.NO_MESSAGE));
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/newVersion/{id}"}, produces = "application/json")
|
||||
// public ResponseEntity newVersionDatasetProfile(@PathVariable String id, @RequestBody DatasetProfile profile) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// try {
|
||||
// DescriptionTemplateEntity modelDefinition = this.datasetProfileManager.createNewVersionDatasetProfile(id, profile);
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId());
|
||||
// } catch (DatasetProfileNewVersionException exception) {
|
||||
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().status(ApiMessageCode.ERROR_MESSAGE).message(exception.getMessage()));
|
||||
// }
|
||||
// }
|
||||
|
||||
// @RequestMapping(method = RequestMethod.GET, value = {"/get/{id}"}, produces = "application/json")
|
||||
// @Transactional
|
||||
// public ResponseEntity<ResponseItem<DatasetProfile>> get(@PathVariable String id) throws InvalidApplicationException {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = this.datasetProfileManager.getDatasetProfile(id);
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DatasetProfile>().status(ApiMessageCode.NO_MESSAGE).payload(datasetprofile));
|
||||
// }
|
||||
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/datasetprofiles/getPaged"}, produces = "application/json")
|
||||
// public @ResponseBody
|
||||
// ResponseEntity<ResponseItem<DataTableData<DatasetProfileListingModel>>> getPaged(@RequestBody DatasetProfileTableRequestItem datasetProfileTableRequestItem) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// DataTableData<DatasetProfileListingModel> datasetProfileTableData = this.datasetProfileManager.getPaged(datasetProfileTableRequestItem);
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<DataTableData<DatasetProfileListingModel>>().status(ApiMessageCode.NO_MESSAGE).payload(datasetProfileTableData));
|
||||
// }
|
||||
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/preview"}, consumes = "application/json", produces = "application/json")
|
||||
// public ResponseEntity<ResponseItem<PagedDatasetProfile>> getPreview(@RequestBody DatasetProfile profile) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// DescriptionTemplateEntity modelDefinition = AdminManager.generateViewStyleDefinition(profile, getApiContext(), descriptionTemplateTypeService);
|
||||
// eu.eudat.models.data.user.composite.DatasetProfile datasetProfile = userManager.generateDatasetProfileModel(modelDefinition);
|
||||
// PagedDatasetProfile pagedDatasetProfile = new PagedDatasetProfile();
|
||||
// pagedDatasetProfile.buildPagedDatasetProfile(datasetProfile);
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<PagedDatasetProfile>().status(ApiMessageCode.NO_MESSAGE).payload(pagedDatasetProfile));
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/datasetprofile/clone/{id}"}, consumes = "application/json", produces = "application/json")
|
||||
// public ResponseEntity<ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>> clone(@PathVariable String id) throws InvalidApplicationException {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// eu.eudat.models.data.admin.composite.DatasetProfile datasetprofile = this.datasetProfileManager.getDatasetProfile(id);
|
||||
// datasetprofile.setLabel(datasetprofile.getLabel() + " new ");
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().payload(datasetprofile));
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.DELETE, value = {"{id}"}, consumes = "application/json", produces = "application/json")
|
||||
// public @ResponseBody
|
||||
// ResponseEntity<ResponseItem<DatasetProfile>> inactivate(@PathVariable String id) {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// try {
|
||||
// DescriptionTemplateEntity ret = AdminManager.inactivate(this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao(), this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetDao(), id);
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().status(ApiMessageCode.SUCCESS_MESSAGE));
|
||||
// } catch (DatasetProfileWithDatasetsExeption | InvalidApplicationException exception) {
|
||||
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().status(ApiMessageCode.UNSUCCESS_DELETE).message(exception.getMessage()));
|
||||
// }
|
||||
// }
|
||||
|
||||
// @Transactional
|
||||
// @RequestMapping(method = RequestMethod.GET, value = {"/getXml/{id}"}, produces = "application/json")
|
||||
// public ResponseEntity getDatasetProfileXml(@PathVariable String id, @RequestHeader("Content-Type") String contentType) throws IllegalAccessException, IOException, InstantiationException, InvalidApplicationException {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// if (contentType.equals("application/xml")) {
|
||||
// DescriptionTemplateEntity profile = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id));
|
||||
// eu.eudat.models.data.user.composite.DatasetProfile datasetProfile = userManager.generateDatasetProfileModel(profile);
|
||||
// datasetProfile.setStatus(profile.getStatus().getValue());
|
||||
// datasetProfile.setDescription(profile.getDescription());
|
||||
// datasetProfile.setLanguage(profile.getLanguage());
|
||||
// datasetProfile.setType(this.queryFactory.query(DescriptionTemplateTypeQuery.class).ids(profile.getType()).first().getName());
|
||||
// return this.datasetProfileManager.getDocument(datasetProfile, profile.getLabel());
|
||||
// } else {
|
||||
// return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem<eu.eudat.models.data.admin.composite.DatasetProfile>().status(ApiMessageCode.ERROR_MESSAGE).message("NOT AUTHORIZE"));
|
||||
// }
|
||||
// }
|
||||
|
||||
// @RequestMapping(method = RequestMethod.POST, value = {"/upload", "/upload/{id}"})
|
||||
// public ResponseEntity<Object> setDatasetProfileXml(@RequestParam("file") MultipartFile file,
|
||||
// @PathVariable(value = "id", required = false) String id) throws Exception {
|
||||
// this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
//
|
||||
// DescriptionTemplateImportXml descriptionTemplateImportXmlModel = this.datasetProfileManager.createDatasetProfileFromXml(file);
|
||||
// eu.eudat.models.data.admin.composite.DatasetProfile datasetProfileEntity = descriptionTemplateImportXmlModel.toPersistModel(file.getOriginalFilename(), this.fieldDataHelperService);
|
||||
// DescriptionTemplateEntity modelDefinition;
|
||||
// if (id == null) {
|
||||
// modelDefinition = AdminManager.generateViewStyleDefinition(datasetProfileEntity, getApiContext(), descriptionTemplateTypeService);
|
||||
// DescriptionTemplateEntity descriptionTemplateEntity = this.getApiContext().getOperationsContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition);
|
||||
// UserDescriptionTemplateEntity userDatasetProfile = new UserDescriptionTemplateEntity();
|
||||
// userDatasetProfile.setDescriptionTemplate(descriptionTemplateEntity.getId());
|
||||
// UserInfo userInfo = getApiContext().getOperationsContext().getDatabaseRepository().getUserInfoDao().find(userScope.getUserId());
|
||||
// userDatasetProfile.setUser(userInfo.getId());
|
||||
// userDatasetProfile.setRole(UserDescriptionTemplateRole.Owner);
|
||||
// getApiContext().getOperationsContext().getDatabaseRepository().getUserDatasetProfileDao().createOrUpdate(userDatasetProfile);
|
||||
// } else {
|
||||
// modelDefinition = datasetProfileManager.createNewVersionDatasetProfile(id, datasetProfileEntity);
|
||||
// }
|
||||
// return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<DescriptionTemplateEntity>>()
|
||||
// .status(ApiMessageCode.SUCCESS_MESSAGE).message(""));
|
||||
// }
|
||||
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, value = {"/getSemantics"}, produces = "application/json")
|
||||
public ResponseEntity<ResponseItem<List<String>>> getSemantics(@RequestParam(value = "query", required = false) String query) {
|
||||
this.authorizationService.authorizeForce(Permission.AdminRole, Permission.DatasetProfileManagerRole);
|
||||
|
||||
List<String> semantics = this.datasetProfileManager.getSemantics(query);
|
||||
return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem<List<String>>().status(ApiMessageCode.SUCCESS_MESSAGE).payload(semantics));
|
||||
}
|
||||
}
|
|
@ -204,4 +204,18 @@ public class DescriptionTemplateController {
|
|||
|
||||
return model;
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, value = {"/get-semantics"}, produces = "application/json")
|
||||
public List<String> getSemantics(@RequestParam(value = "query", required = false) String query) throws IOException {
|
||||
logger.debug(new MapLogEntry("import" + DescriptionTemplate.class.getSimpleName()).And("query", query));
|
||||
|
||||
List<String> semantics = this.descriptionTemplateTypeService.getSemantics(query);
|
||||
|
||||
this.auditService.track(AuditableAction.DescriptionTemplate_GetSemantics, Map.ofEntries(
|
||||
new AbstractMap.SimpleEntry<String, Object>("query", query)
|
||||
));
|
||||
//this.auditService.trackIdentity(AuditableAction.IdentityTracking_Action);
|
||||
|
||||
return semantics;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package eu.eudat.logic.managers;
|
||||
|
||||
import eu.eudat.commons.scope.user.UserScope;
|
||||
import eu.eudat.commons.types.descriptiontemplate.FieldEntity;
|
||||
import eu.eudat.commons.types.descriptiontemplate.fielddata.AutoCompleteDataEntity;
|
||||
import eu.eudat.commons.types.xml.XmlBuilder;
|
||||
|
@ -12,14 +11,10 @@ import eu.eudat.logic.proxy.fetching.RemoteFetcher;
|
|||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.logic.services.operations.DatabaseRepository;
|
||||
import eu.eudat.models.data.externaldataset.ExternalAutocompleteFieldModel;
|
||||
import eu.eudat.service.descriptiontemplatetype.DescriptionTemplateTypeService;
|
||||
import gr.cite.commons.web.authz.service.AuthorizationService;
|
||||
import gr.cite.tools.data.deleter.DeleterFactory;
|
||||
import gr.cite.tools.data.query.QueryFactory;
|
||||
import eu.eudat.service.descriptiontemplate.Semantic;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.w3c.dom.Document;
|
||||
|
@ -219,15 +214,6 @@ public class DatasetProfileManager {
|
|||
return item != null ? item.toString() : null;
|
||||
}
|
||||
|
||||
public List<String> getSemantics(String query) {
|
||||
List<Semantic> semantics = configLoader.getSemantics();
|
||||
List<String> filteredSemantics = semantics.stream().map(Semantic::getName).collect(Collectors.toList());
|
||||
if(query != null && !query.isEmpty()){
|
||||
filteredSemantics = semantics.stream().filter(x -> x.getCategory().contains(query) || x.getName().contains(query)).map(Semantic::getName).collect(Collectors.toList());
|
||||
}
|
||||
return filteredSemantics;
|
||||
}
|
||||
|
||||
public void addSemanticsInDatasetProfiles() throws XPathExpressionException, InvalidApplicationException {
|
||||
List<DescriptionTemplateEntity> ids = this.databaseRepository.getDatasetProfileDao().getAllIds();
|
||||
for(DescriptionTemplateEntity dp: ids){
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package eu.eudat.logic.proxy.config.configloaders;
|
||||
|
||||
import eu.eudat.logic.proxy.config.ExternalUrls;
|
||||
import eu.eudat.logic.proxy.config.Semantic;
|
||||
import eu.eudat.service.descriptiontemplate.Semantic;
|
||||
import eu.eudat.models.data.pid.PidLinks;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
|
||||
|
@ -10,7 +10,6 @@ import java.util.Map;
|
|||
|
||||
public interface ConfigLoader {
|
||||
ExternalUrls getExternalUrls();
|
||||
List<Semantic> getSemantics();
|
||||
XWPFDocument getDocument();
|
||||
XWPFDocument getDatasetDocument();
|
||||
PidLinks getPidLinks();
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
package eu.eudat.logic.proxy.config.configloaders;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import eu.eudat.commons.config.filepath.FilePathsProperties;
|
||||
import eu.eudat.logic.proxy.config.ExternalUrls;
|
||||
import eu.eudat.logic.proxy.config.Semantic;
|
||||
import eu.eudat.service.descriptiontemplate.Semantic;
|
||||
import eu.eudat.models.data.pid.PidLinks;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
|
@ -37,17 +36,17 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
private static final ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
private ExternalUrls externalUrls;
|
||||
private List<Semantic> semantics;
|
||||
private XWPFDocument document;
|
||||
private XWPFDocument datasetDocument;
|
||||
private PidLinks pidLinks;
|
||||
private Map<String, String> keyToSourceMap;
|
||||
|
||||
|
||||
@Autowired
|
||||
private Environment environment;
|
||||
private FilePathsProperties config;
|
||||
|
||||
|
||||
private void setExternalUrls() {
|
||||
String fileUrl = this.environment.getProperty("configuration.externalUrls");
|
||||
String fileUrl = this.config.getExternalUrls();
|
||||
logger.info("Loaded also config file: " + fileUrl);
|
||||
InputStream is = null;
|
||||
try {
|
||||
|
@ -66,21 +65,8 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
}
|
||||
}
|
||||
|
||||
private void setSemantics() {
|
||||
String filePath = environment.getProperty("configuration.semantics");
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
if (filePath != null) {
|
||||
try {
|
||||
semantics = mapper.readValue(getStreamFromPath(filePath), new TypeReference<List<Semantic>>(){});
|
||||
}
|
||||
catch (IOException e) {
|
||||
logger.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setDocument() {
|
||||
String filePath = environment.getProperty("configuration.h2020template");
|
||||
String filePath = this.config.getH2020template();
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
InputStream is = null;
|
||||
try {
|
||||
|
@ -98,7 +84,7 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
}
|
||||
|
||||
private void setDatasetDocument() {
|
||||
String filePath = environment.getProperty("configuration.h2020datasettemplate");
|
||||
String filePath = this.config.getH2020DatasetTemplate();
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
InputStream is = null;
|
||||
try {
|
||||
|
@ -116,7 +102,7 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
}
|
||||
|
||||
private void setPidLinks() {
|
||||
String filePath = environment.getProperty("configuration.pid_links");
|
||||
String filePath = this.config.getPidLinks();
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
InputStream is = null;
|
||||
try {
|
||||
|
@ -135,7 +121,7 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
}
|
||||
|
||||
private void setKeyToSourceMap() {
|
||||
String filePath = this.environment.getProperty("configuration.externalUrls");
|
||||
String filePath = this.config.getExternalUrls();
|
||||
logger.info("Loaded also config file: " + filePath);
|
||||
Document doc = getXmlDocumentFromFilePath(filePath);
|
||||
if (doc == null) {
|
||||
|
@ -166,13 +152,7 @@ public class DefaultConfigLoader implements ConfigLoader {
|
|||
return externalUrls;
|
||||
}
|
||||
|
||||
public List<Semantic> getSemantics() {
|
||||
if (semantics == null) {
|
||||
semantics = new ArrayList<>();
|
||||
this.setSemantics();
|
||||
}
|
||||
return semantics;
|
||||
}
|
||||
|
||||
|
||||
public XWPFDocument getDocument() {
|
||||
this.setDocument();
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
configuration:
|
||||
file-paths:
|
||||
externalUrls: externalUrls/ExternalUrls.xml
|
||||
semantics: Semantics.json
|
||||
h2020template: documents/h2020.docx
|
||||
h2020datasettemplate: documents/h2020_dataset.docx
|
||||
pid_links: pidLinks.json
|
||||
h2020DatasetTemplate: documents/h2020_dataset.docx
|
||||
pidLinks: pidLinks.json
|
||||
|
||||
userguide:
|
||||
path: dmp-backend/web/src/main/resources/material/user-guide
|
||||
|
|
Loading…
Reference in New Issue