use of com.serotonin.m2m2.vo.mailingList.UserPhoneEntry in project ma-core-public by infiniteautomation.
the class MailingListService method validateRecipient.
/**
* For internal use to validate a mailing list
*/
protected void validateRecipient(MailingList list, String prefix, MailingListRecipient recipient, ProcessResult result, RecipientListEntryType... acceptableTypes) {
if (!ArrayUtils.contains(acceptableTypes, recipient.getRecipientType())) {
result.addContextualMessage(prefix + ".recipientType", "mailingLists.validate.invalidEntryType", recipient.getRecipientType(), acceptableTypes);
} else {
switch(recipient.getRecipientType()) {
case ADDRESS:
AddressEntry ee = (AddressEntry) recipient;
if (StringUtils.isBlank(ee.getAddress())) {
result.addContextualMessage(prefix, "validate.required");
}
break;
case MAILING_LIST:
// If a mailing list then make sure it exists and there are no circular references
MailingList sublist = dao.get(recipient.getReferenceId());
if (sublist == null) {
result.addContextualMessage(prefix, "mailingLists.validate.listDoesNotExist");
} else {
Set<Integer> listIds = new HashSet<>();
if (list != null) {
listIds.add(list.getId());
}
// Check to see if the top level recipient is the same as me
if (!listIds.add(sublist.getId())) {
result.addContextualMessage(prefix, "mailingLists.validate.listCannotContainItself");
return;
}
recursivelyCheckMailingListEntries(listIds, sublist, prefix, result);
}
break;
case PHONE_NUMBER:
PhoneEntry pe = (PhoneEntry) recipient;
if (StringUtils.isBlank(pe.getPhone())) {
result.addContextualMessage(prefix, "validate.required");
}
break;
case USER:
UserEntry ue = (UserEntry) recipient;
if (userDao.getXidById(ue.getUserId()) == null) {
result.addContextualMessage(prefix, "mailingLists.validate.userDoesNotExist");
}
break;
case USER_PHONE_NUMBER:
UserPhoneEntry up = (UserPhoneEntry) recipient;
User userWithPhone = userDao.get(up.getUserId());
if (userWithPhone == null) {
result.addContextualMessage(prefix, "mailingLists.validate.userDoesNotExist");
} else if (StringUtils.isBlank(userWithPhone.getPhone())) {
result.addContextualMessage(prefix, "mailingLists.validate.userDoesNotHavePhoneNumber");
}
break;
default:
break;
}
}
}
Aggregations