file-transformer-rda-json/core/src/main/java/eu/eudat/file/transformer/rda/mapper/ContactRDAMapper.java

40 lines
1.5 KiB
Java

package eu.eudat.file.transformer.rda.mapper;
import eu.eudat.file.transformer.enums.ContactInfoType;
import eu.eudat.file.transformer.models.user.UserContactInfoFileTransformerModel;
import eu.eudat.file.transformer.models.user.UserFileTransformerModel;
import eu.eudat.file.transformer.rda.Contact;
import java.util.List;
public class ContactRDAMapper {
public static Contact toRDA(UserFileTransformerModel creator) {
Contact rda = new Contact();
if (creator.getName() == null) {
throw new IllegalArgumentException("Contact Name is missing");
}
rda.setName(creator.getName());
//TODO: GetEmail
UserContactInfoFileTransformerModel emailContact = creator.getContacts().stream().filter(userContactInfo -> userContactInfo.getType().equals(ContactInfoType.Email)).findFirst().orElse(null);
if (emailContact == null) {
throw new IllegalArgumentException("Contact Email is missing");
}
rda.setMbox(emailContact.getValue());
rda.setContactId(ContactIdRDAMapper.toRDA(creator.getId()));
return rda;
}
public static UserFileTransformerModel toEntity(Contact rda) {
UserFileTransformerModel entity = new UserFileTransformerModel();
entity.setId(ContactIdRDAMapper.toEntity(rda.getContactId()));
entity.setName(rda.getName());
UserContactInfoFileTransformerModel emailContactInfo = new UserContactInfoFileTransformerModel();
emailContactInfo.setType(ContactInfoType.Email);
emailContactInfo.setValue(rda.getMbox());
entity.setContacts(List.of(emailContactInfo));
// entity.setEmail(rda.getMbox());//TODO: GetEmail
return entity;
}
}