package mapper;
import api.v1.Recipient;
import exceptions.PoseidonException;
import models.RecipientModel;
import play.mvc.Http;
import service.PoseidonService;
import service.RecipientService;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class RecipientMapper {
public List<Recipient> mapToApi(List<RecipientModel> mRecipients) {
List<Recipient> RecipientList = new ArrayList<>();
for (RecipientModel mRecipient : mRecipients) {
Recipient Recipient = mapToApi(mRecipient);
RecipientList.add(Recipient);
}
return RecipientList;
}
public Recipient mapToApi(RecipientModel mRecipient) {
Recipient recipient = new Recipient();
recipient.id = mRecipient.id;
recipient.email = mRecipient.email;
return recipient;
}
public RecipientModel mapToModel(Recipient aRecipient, String user) {
RecipientModel model;
if (aRecipient.id != null && aRecipient.id > 0L) {
model = RecipientModel.find.byId(aRecipient.id);
if (model == null) {
throw new PoseidonException(Http.Status.BAD_REQUEST, "Ugyldig mottaker-id angitt: " + aRecipient.id);
}
} else {
model = new RecipientService(user).findByEmail(aRecipient.email);
if ( model == null ) {
model = new RecipientModel();
model.createdBy = user;
model.created = PoseidonService.getNow().toDate();
}
}
model.email = aRecipient.email;
return model;
}
}