39 lines
1.9 KiB
Java
39 lines
1.9 KiB
Java
package eu.eudat.model.mapper.publicapi;
|
|
|
|
import eu.eudat.model.Description;
|
|
import eu.eudat.model.publicapi.datasetprofile.DatasetProfilePublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.DataRepositoryPublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.ExternalDatasetPublicListingModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.RegistryPublicModel;
|
|
import eu.eudat.model.publicapi.datasetwizard.ServicePublicModel;
|
|
import eu.eudat.model.publicapi.overviewmodels.DatasetPublicModel;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.sql.Date;
|
|
import java.util.Objects;
|
|
|
|
@Component
|
|
public class DescriptionToPublicApiDatasetMapper {
|
|
|
|
public DatasetPublicModel toPublicModel(Description description) {
|
|
DatasetPublicModel model = new DatasetPublicModel();
|
|
model.setLabel(description.getLabel());
|
|
model.setDescription(description.getDescription());
|
|
model.setReference("");
|
|
model.setUri("");
|
|
model.setStatus(description.getStatus());
|
|
|
|
model.setProfile(DatasetProfilePublicModel.fromDataModel(description.getDescriptionTemplate()));
|
|
model.setRegistries(description.getDescriptionReferences().stream().map(RegistryPublicModel::fromDescriptionReference).filter(Objects::nonNull).toList());
|
|
model.setServices(description.getDescriptionReferences().stream().map(ServicePublicModel::fromDescriptionReference).filter(Objects::nonNull).toList());
|
|
model.setDataRepositories(description.getDescriptionReferences().stream().map(DataRepositoryPublicModel::fromDescriptionReference).filter(Objects::nonNull).toList());
|
|
model.setExternalDatasets(description.getDescriptionReferences().stream().map(ExternalDatasetPublicListingModel::fromDescriptionReference).filter(Objects::nonNull).toList());
|
|
|
|
model.setCreatedAt(Date.from(description.getCreatedAt()));
|
|
model.setModifiedAt(Date.from(description.getUpdatedAt()));
|
|
|
|
return model;
|
|
}
|
|
|
|
}
|