40 lines
1.5 KiB
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;
|
|
}
|
|
}
|