package eu.eudat.model.mapper.publicapi; import eu.eudat.model.Description; import eu.eudat.model.publicapi.datasetprofile.DatasetProfilePublicModel; import eu.eudat.model.publicapi.grant.GrantPublicOverviewModel; import eu.eudat.model.publicapi.listingmodels.DatasetPublicListingModel; import eu.eudat.model.publicapi.user.UserInfoPublicModel; import eu.eudat.service.publicapi.PublicApiProperties; import org.springframework.stereotype.Component; import java.sql.Date; import java.util.List; @Component public class DescriptionToPublicApiDatasetListingMapper { public DatasetPublicListingModel toPublicListingModel(Description description, PublicApiProperties.ReferenceTypeMapConfig config) { DatasetPublicListingModel model = new DatasetPublicListingModel(); model.setId(description.getId().toString()); model.setLabel(description.getLabel()); model.setDescription(description.getDescription()); model.setVersion(0); model.setDmp(description.getDmp().getLabel()); model.setDmpId(description.getDmp().getId().toString()); model.setUsers(List.of(UserInfoPublicModel.fromDescriptionCreator(description.getCreatedBy()))); model.setProfile(DatasetProfilePublicModel.fromDataModel(description.getDescriptionTemplate())); model.setGrant(GrantPublicOverviewModel.fromDescriptionReference(description.getDescriptionReferences(), config)); model.setCreatedAt(Date.from(description.getCreatedAt())); model.setModifiedAt(Date.from(description.getUpdatedAt())); model.setFinalizedAt(Date.from(description.getFinalizedAt())); return model; } }