argos/dmp-backend/core/src/main/java/eu/eudat/model/mapper/publicapi/DmpToPublicApiDmpListingMap...

35 lines
1.4 KiB
Java

package eu.eudat.model.mapper.publicapi;
import eu.eudat.model.Dmp;
import eu.eudat.model.publicapi.listingmodels.DataManagementPlanPublicListingModel;
import eu.eudat.model.publicapi.researcher.ResearcherPublicModel;
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.Objects;
@Component
public class DmpToPublicApiDmpListingMapper {
public DataManagementPlanPublicListingModel toPublicListingModel(Dmp dmp, PublicApiProperties.ReferenceTypeMapConfig config) {
DataManagementPlanPublicListingModel model = new DataManagementPlanPublicListingModel();
model.setId(dmp.getId().toString());
model.setLabel(dmp.getLabel());
model.setVersion(dmp.getVersion());
model.setGroupId(dmp.getGroupId());
model.setUsers(dmp.getDmpUsers().stream().map(UserInfoPublicModel::fromDmpUser).toList());
model.setResearchers(dmp.getDmpReferences().stream().map(x-> ResearcherPublicModel.fromDmpReference(x, config)).filter(Objects::nonNull).toList());
model.setCreatedAt(Date.from(dmp.getCreatedAt()));
model.setModifiedAt(Date.from(dmp.getUpdatedAt()));
model.setFinalizedAt(Date.from(dmp.getFinalizedAt()));
model.setPublishedAt(model.getFinalizedAt());
return model;
}
}