38 lines
1.6 KiB
Java
38 lines
1.6 KiB
Java
package eu.eudat.model.mapper.publicapi;
|
|
|
|
import eu.eudat.model.Dmp;
|
|
import eu.eudat.model.publicapi.grant.GrantPublicOverviewModel;
|
|
import eu.eudat.model.publicapi.organisation.OrganizationPublicModel;
|
|
import eu.eudat.model.publicapi.overviewmodels.DataManagementPlanPublicModel;
|
|
import eu.eudat.model.publicapi.researcher.ResearcherPublicModel;
|
|
import eu.eudat.model.publicapi.user.UserInfoPublicModel;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import java.sql.Date;
|
|
import java.util.Objects;
|
|
|
|
@Component
|
|
public class DmpToPublicApiDmpMapper {
|
|
|
|
public DataManagementPlanPublicModel toPublicModel(Dmp dmp) {
|
|
DataManagementPlanPublicModel model = new DataManagementPlanPublicModel();
|
|
model.setId(dmp.getId().toString());
|
|
model.setLabel(dmp.getLabel());
|
|
model.setDescription(dmp.getDescription());
|
|
model.setVersion(dmp.getVersion());
|
|
model.setGroupId(dmp.getGroupId());
|
|
|
|
model.setUsers(dmp.getDmpUsers().stream().map(UserInfoPublicModel::fromDmpUser).toList());
|
|
model.setResearchers(dmp.getDmpReferences().stream().map(ResearcherPublicModel::fromDmpReference).filter(Objects::isNull).toList());
|
|
model.setGrant(GrantPublicOverviewModel.fromDmpReferences(dmp.getDmpReferences()));
|
|
model.setOrganisations(dmp.getDmpReferences().stream().map(OrganizationPublicModel::fromDmpReference).filter(Objects::isNull).toList());
|
|
|
|
model.setCreatedAt(Date.from(dmp.getCreatedAt()));
|
|
model.setModifiedAt(Date.from(dmp.getUpdatedAt()));
|
|
model.setFinalizedAt(Date.from(dmp.getFinalizedAt()));
|
|
|
|
return model;
|
|
}
|
|
|
|
}
|