450 lines
48 KiB
Java
450 lines
48 KiB
Java
package eu.eudat.service.transformer;
|
|
|
|
import eu.eudat.authorization.AuthorizationFlags;
|
|
import eu.eudat.authorization.Permission;
|
|
import eu.eudat.cache.transformer.FileTransformerConfigurationCache;
|
|
import eu.eudat.commons.JsonHandlingService;
|
|
import eu.eudat.commons.enums.StorageType;
|
|
import eu.eudat.configurations.transformer.TransformerProperties;
|
|
import eu.eudat.convention.ConventionService;
|
|
import eu.eudat.file.transformer.interfaces.FileTransformerConfiguration;
|
|
import eu.eudat.file.transformer.models.description.DescriptionFileTransformerModel;
|
|
import eu.eudat.file.transformer.models.dmp.DmpFileTransformerModel;
|
|
import eu.eudat.file.transformer.models.misc.FileEnvelope;
|
|
import eu.eudat.file.transformer.models.misc.FileFormat;
|
|
import eu.eudat.model.builder.filetransformer.DescriptionFileTransformerBuilder;
|
|
import eu.eudat.model.builder.filetransformer.DmpFileTransformerBuilder;
|
|
import eu.eudat.model.file.TransformerCacheModel;
|
|
import eu.eudat.query.DescriptionQuery;
|
|
import eu.eudat.query.DmpQuery;
|
|
import eu.eudat.query.EntityDoiQuery;
|
|
import eu.eudat.repository.TransformerRepository;
|
|
import eu.eudat.service.entitydoi.EntityDoiService;
|
|
import eu.eudat.service.storage.StorageFileService;
|
|
import gr.cite.commons.web.authz.service.AuthorizationService;
|
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeCacheService;
|
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeFilterFunction;
|
|
import gr.cite.commons.web.oidc.filter.webflux.TokenExchangeModel;
|
|
import gr.cite.tools.data.builder.BuilderFactory;
|
|
import gr.cite.tools.data.query.QueryFactory;
|
|
import jakarta.persistence.EntityManager;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.ApplicationContext;
|
|
import org.springframework.core.env.Environment;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
|
|
import org.springframework.web.reactive.function.client.WebClient;
|
|
import reactor.core.publisher.Mono;
|
|
|
|
import javax.management.InvalidApplicationException;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.net.URI;
|
|
import java.util.*;
|
|
|
|
@Service
|
|
public class FileTransformerService {
|
|
private static final Logger logger = LoggerFactory.getLogger(FileTransformerService.class);
|
|
|
|
private final TransformerProperties transformerProperties;
|
|
private final Map<String, TransformerRepository> clients;
|
|
private final TokenExchangeCacheService tokenExchangeCacheService;
|
|
private final FileTransformerConfigurationCache fileTransformerConfigurationCache;
|
|
private final AuthorizationService authorizationService;
|
|
private final ConventionService conventionService;
|
|
private final Environment environment;
|
|
private final WebClient.Builder webClientBuilder;
|
|
private final EntityDoiService doiService;
|
|
private final ApplicationContext applicationContext;
|
|
private final JsonHandlingService jsonHandlingService;
|
|
private final QueryFactory queryFactory;
|
|
private final BuilderFactory builderFactory;
|
|
private final StorageFileService storageFileService;
|
|
|
|
|
|
@Autowired
|
|
public FileTransformerService(TransformerProperties transformerProperties, TokenExchangeCacheService tokenExchangeCacheService, FileTransformerConfigurationCache fileTransformerConfigurationCache, WebClient.Builder builder, EntityManager entityManager, AuthorizationService authorizationService, ConventionService conventionService, Environment environment, DmpQuery dmpQuery, EntityDoiQuery doiQuery, EntityDoiService doiService, ApplicationContext applicationContext, JsonHandlingService jsonHandlingService, QueryFactory queryFactory, BuilderFactory builderFactory, StorageFileService storageFileService) {
|
|
this.transformerProperties = transformerProperties;
|
|
this.tokenExchangeCacheService = tokenExchangeCacheService;
|
|
this.fileTransformerConfigurationCache = fileTransformerConfigurationCache;
|
|
this.authorizationService = authorizationService;
|
|
this.conventionService = conventionService;
|
|
this.environment = environment;
|
|
this.webClientBuilder = builder;
|
|
this.doiService = doiService;
|
|
this.applicationContext = applicationContext;
|
|
this.jsonHandlingService = jsonHandlingService;
|
|
this.queryFactory = queryFactory;
|
|
this.builderFactory = builderFactory;
|
|
this.storageFileService = storageFileService;
|
|
this.clients = new HashMap<>();
|
|
}
|
|
|
|
private TransformerRepository getRepository(String repoId) {
|
|
if (this.clients.containsKey(repoId)) return this.clients.get(repoId);
|
|
|
|
//GK: It's register time
|
|
TransformerProperties.TransformerSource source = transformerProperties.getSources().stream().filter(depositSource -> depositSource.getCodes().contains(repoId)).findFirst().orElse(null);
|
|
if (source != null) {
|
|
String host = URI.create(source.getUrl()).getHost();
|
|
TokenExchangeModel tokenExchangeModel = new TokenExchangeModel(host + "_" + source.getClientId(), source.getIssuerUrl(), source.getClientId(), source.getClientSecret(), source.getScope());
|
|
TokenExchangeFilterFunction tokenExchangeFilterFunction = new TokenExchangeFilterFunction(this.tokenExchangeCacheService, tokenExchangeModel);
|
|
TransformerRepository repository = new TransformerRepository(webClientBuilder.baseUrl(source.getUrl() + "/api/file").filters(exchangeFilterFunctions -> {
|
|
exchangeFilterFunctions.add(tokenExchangeFilterFunction);
|
|
exchangeFilterFunctions.add(logRequest());
|
|
}).build());
|
|
source.getCodes().forEach(code -> this.clients.put(code, repository));
|
|
return repository;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
public List<FileFormat> getAvailableConfigurations() {
|
|
TransformerCacheModel configs = fileTransformerConfigurationCache.lookup("base");
|
|
if (configs == null) {
|
|
List<FileFormat> configurations = new ArrayList<>();
|
|
//GK: So much for lazy loading
|
|
List<TransformerRepository> repositories = transformerProperties.getSources().stream().map(depositSource -> getRepository(depositSource.getCodes().get(0))).toList();
|
|
|
|
repositories.forEach((client) -> {
|
|
FileTransformerConfiguration repositoryConfigs = client.getConfiguration();
|
|
if (repositoryConfigs != null && !repositoryConfigs.getExportVariants().isEmpty()) {
|
|
configurations.addAll(repositoryConfigs.getExportVariants());
|
|
}
|
|
});
|
|
|
|
configs = new TransformerCacheModel(configurations);
|
|
this.fileTransformerConfigurationCache.put("base", configs);
|
|
}
|
|
|
|
return configs.getFormats();
|
|
}
|
|
|
|
public eu.eudat.model.file.FileEnvelope exportDmp(UUID dmpId, String format) throws InvalidApplicationException, IOException {
|
|
this.authorizationService.authorize(Permission.EditDmp);
|
|
//GK: Why it is in that service, and why it's not static?
|
|
this.conventionService.isValidGuid(dmpId);
|
|
//GK: First get the right client
|
|
TransformerRepository repository = getRepository(format);
|
|
//GK: Second get the Target Data Management Plan
|
|
/*FieldSet fieldSet = new BaseFieldSet(Dmp._id,
|
|
Dmp._accessType,
|
|
Dmp._dmpReferences,
|
|
Dmp._blueprint,
|
|
Dmp._dmpUsers,
|
|
Dmp._createdAt,
|
|
Dmp._creator,
|
|
Dmp._description,
|
|
Dmp._descriptions,
|
|
Dmp._entityDois,
|
|
Dmp._finalizedAt,
|
|
Dmp._groupId,
|
|
Dmp._isActive,
|
|
Dmp._label,
|
|
Dmp._properties,
|
|
Dmp._language,
|
|
Dmp._publicAfter,
|
|
Dmp._status,
|
|
Dmp._updatedAt,
|
|
Dmp._version,
|
|
Dmp._versionStatus,
|
|
Dmp._dmpReferences + "." + DmpReference._id,
|
|
Dmp._dmpReferences + "." + DmpReference._data,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._id,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._description,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._abbreviation,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._definition,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._label,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._source,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._sourceType,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._type,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._isActive,
|
|
Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._reference,
|
|
Dmp._creator + "." + User._id,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._avatarUrl,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._culture,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._language,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._timezone,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._roleOrganization,
|
|
Dmp._creator + "." + User._additionalInfo + "." + UserAdditionalInfo._organization,
|
|
Dmp._creator + "." + User._createdAt,
|
|
Dmp._creator + "." + User._isActive,
|
|
Dmp._creator + "." + User._name,
|
|
Dmp._creator + "." + User._roles + "." + UserRole._id,
|
|
Dmp._creator + "." + User._roles + "." + UserRole._role,
|
|
Dmp._descriptions + "." + Description._id,
|
|
Dmp._descriptions + "." + Description._label,
|
|
Dmp._descriptions + "." + Description._properties,
|
|
Dmp._descriptions + "." + Description._description,
|
|
Dmp._descriptions + "." + Description._status,
|
|
Dmp._descriptions + "." + Description._descriptionTags,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate,
|
|
Dmp._descriptions + "." + Description._descriptionReferences,
|
|
Dmp._descriptions + "." + Description._isActive,
|
|
Dmp._descriptions + "." + Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._key,
|
|
Dmp._descriptions + "." + Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._value,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._id,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._id,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._description,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._abbreviation,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._definition,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._label,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._source,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._sourceType,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._type,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._isActive,
|
|
Dmp._descriptions + "." + Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._reference,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._id,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._description,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._label,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._language,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._status,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._isActive,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._groupId,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._type,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._version,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._id,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._description,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._sections,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._title,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._page,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._ordinal,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._defaultVisibility,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._extendedDescription,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._max,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._min,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._placeholder,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._tableView,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._numbering,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._id,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._title,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._description,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._ordinal,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._numbering,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._max,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._min,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._tableView,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._placeholder,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._hasCommentField,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._additionalInformation,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._extendedDescription,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._id,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._ordinal,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._numbering,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._label,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._fieldType,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._multiAutoComplete,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._label,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._uri,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._source,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._value,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._defaultValue,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._includeInExport,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._schematics,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._validations,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._target,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._value,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._id,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._ordinal,
|
|
Dmp._descriptions + "." + Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._title,
|
|
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._id,
|
|
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._id,
|
|
Dmp._descriptions + "." + Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._label,
|
|
Dmp._descriptions + "." + Description._dmpDescriptionTemplate + "." + DmpDescriptionTemplate._sectionId,
|
|
Dmp._blueprint + "." + DmpBlueprint._id,
|
|
Dmp._blueprint + "." + DmpBlueprint._label,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._id,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._description,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._label,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._ordinal,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._id,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._description,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._ordinal,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._label,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._placeholder,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._category,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + eu.eudat.model.dmpblueprintdefinition.Field._required,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + SystemField._systemFieldType,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._fields + "." + ExtraField._dataType,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._id,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._label,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._descriptionTemplateId,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._maxMultiplicity,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._descriptionTemplates + "." + eu.eudat.model.dmpblueprintdefinition.DescriptionTemplate._minMultiplicity,
|
|
Dmp._blueprint + "." + DmpBlueprint._definition + "." + eu.eudat.model.dmpblueprintdefinition.Definition._sections + "." + eu.eudat.model.dmpblueprintdefinition.Section._hasTemplates,
|
|
Dmp._entityDois + "." + EntityDoi._doi,
|
|
Dmp._entityDois + "." + EntityDoi._id,
|
|
Dmp._entityDois + "." + EntityDoi._entityType,
|
|
Dmp._dmpUsers + "." + DmpUser._id,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._id,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._additionalInfo,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._createdAt,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._isActive,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._name,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._roles + "." + UserRole._id,
|
|
Dmp._dmpUsers + "." + DmpUser._user + "." + User._roles + "." + UserRole._role,
|
|
Dmp._dmpUsers + "." + DmpUser._role
|
|
);*/
|
|
DmpQuery query = this.queryFactory.query(DmpQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(dmpId);
|
|
DmpFileTransformerModel dmpFileTransformerModel = this.builderFactory.builder(DmpFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
|
FileEnvelope fileEnvelope = repository.exportDmp(dmpFileTransformerModel, format);
|
|
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
|
byte[] data = storageFileService.readByFileRefAsBytesSafe(fileEnvelope.getFile(), StorageType.Transformer);
|
|
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
|
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
|
fos.write(data);
|
|
}
|
|
result.setFile(temp);
|
|
result.setFilename(fileEnvelope.getFilename());
|
|
return result;
|
|
}
|
|
|
|
public eu.eudat.model.file.FileEnvelope exportDescription(UUID descriptionId, String format) throws InvalidApplicationException, IOException {
|
|
this.authorizationService.authorize(Permission.EditDmp);
|
|
//GK: Why it is in that service, and why it's not static?
|
|
this.conventionService.isValidGuid(descriptionId);
|
|
//GK: First get the right client
|
|
TransformerRepository repository = getRepository(format);
|
|
//GK: Second get the Target Data Management Plan
|
|
/*FieldSet fieldSet = new BaseFieldSet(
|
|
Description._dmp + "." + Dmp._id,
|
|
Description._dmp + "." + Dmp._createdAt,
|
|
Description._dmp + "." + Dmp._finalizedAt,
|
|
Description._dmp + "." + Dmp._groupId,
|
|
Description._dmp + "." + Dmp._isActive,
|
|
Description._dmp + "." + Dmp._label,
|
|
Description._dmp + "." + Dmp._language,
|
|
Description._dmp + "." + Dmp._publicAfter,
|
|
Description._dmp + "." + Dmp._status,
|
|
Description._dmp + "." + Dmp._updatedAt,
|
|
Description._dmp + "." + Dmp._version,
|
|
Description._dmp + "." + Dmp._properties,
|
|
Description._dmp + "." + Dmp._versionStatus,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._id,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._data,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._id,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._description,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._abbreviation,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._definition,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._label,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._source,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._sourceType,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._type,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._isActive,
|
|
Description._dmp + "." + Dmp._dmpReferences + "." + DmpReference._reference + "." + Reference._reference,
|
|
Description._id,
|
|
Description._label,
|
|
Description._properties,
|
|
Description._description,
|
|
Description._status,
|
|
Description._descriptionTags,
|
|
Description._descriptionTemplate,
|
|
Description._descriptionReferences,
|
|
Description._isActive,
|
|
Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._key,
|
|
Description._properties + "." + PropertyDefinition._fields + "." + eu.eudat.model.descriptionproperties.Field._value,
|
|
Description._descriptionReferences + "." + DescriptionReference._id,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._id,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._description,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._abbreviation,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._definition,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._label,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._source,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._sourceType,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._type,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._isActive,
|
|
Description._descriptionReferences + "." + DescriptionReference._reference + "." + Reference._reference,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._id,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._description,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._label,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._language,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._status,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._isActive,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._groupId,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._type,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._version,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._id,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._description,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._sections,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._title,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._page,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._ordinal,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._defaultVisibility,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._extendedDescription,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._max,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._min,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._placeholder,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._multiplicity + "." + Multiplicity._tableView,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._numbering,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._id,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._title,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._description,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._ordinal,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._numbering,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._max,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._min,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._tableView,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._multiplicity + "." + Multiplicity._placeholder,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._hasCommentField,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._additionalInformation,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._extendedDescription,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._id,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._ordinal,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._numbering,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._label,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + BaseFieldData._fieldType,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._multiAutoComplete,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._label,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._uri,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._source,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._data + "." + AutoCompleteData._autoCompleteSingleDataList + "." + AutoCompleteSingleData._autoCompleteOptions + "." + ComboBoxOption._value,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._defaultValue,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._includeInExport,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._schematics,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._validations,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._target,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._sections + "." + Section._fieldSets + "." + eu.eudat.model.descriptiontemplatedefinition.FieldSet._fields + "." + Field._visibilityRules + "." + Rule._value,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._id,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._ordinal,
|
|
Description._descriptionTemplate + "." + DescriptionTemplate._definition + "." + Definition._pages + "." + Page._title,
|
|
Description._descriptionTags + "." + DescriptionTag._id,
|
|
Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._id,
|
|
Description._descriptionTags + "." + DescriptionTag._tag + "." + Tag._label,
|
|
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._doi,
|
|
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._id,
|
|
Description._dmp + "." + Dmp._entityDois + "." + EntityDoi._entityType
|
|
);*/
|
|
DescriptionQuery query = this.queryFactory.query(DescriptionQuery.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).ids(descriptionId);
|
|
DescriptionFileTransformerModel descriptionFileTransformerModel = this.builderFactory.builder(DescriptionFileTransformerBuilder.class).authorize(AuthorizationFlags.OwnerOrDmpAssociatedOrPermissionOrPublic).build(query.first());
|
|
FileEnvelope fileEnvelope = repository.exportDescription(descriptionFileTransformerModel, format);
|
|
eu.eudat.model.file.FileEnvelope result = new eu.eudat.model.file.FileEnvelope();
|
|
byte[] data = this.storageFileService.readByFileRefAsBytesSafe(fileEnvelope.getFile(), StorageType.Transformer);
|
|
File temp = new File(environment.getProperty("path.path") + UUID.randomUUID());
|
|
try (FileOutputStream fos = new FileOutputStream(temp)) {
|
|
fos.write(data);
|
|
}
|
|
result.setFile(temp);
|
|
result.setFilename(fileEnvelope.getFilename());
|
|
return result;
|
|
}
|
|
|
|
// This method returns filter function which will log request data
|
|
private static ExchangeFilterFunction logRequest() {
|
|
return ExchangeFilterFunction.ofRequestProcessor(clientRequest -> {
|
|
logger.info("Request: {} {}", clientRequest.method(), clientRequest.url());
|
|
clientRequest.headers().forEach((name, values) -> values.forEach(value -> logger.info("{}={}", name, value)));
|
|
return Mono.just(clientRequest);
|
|
});
|
|
}
|
|
}
|