Search in sources :

Example 1 with UserPhoneEntry

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;
        }
    }
}
Also used : User(com.serotonin.m2m2.vo.User) AddressEntry(com.serotonin.m2m2.vo.mailingList.AddressEntry) MailingList(com.serotonin.m2m2.vo.mailingList.MailingList) UserPhoneEntry(com.serotonin.m2m2.vo.mailingList.UserPhoneEntry) UserEntry(com.serotonin.m2m2.vo.mailingList.UserEntry) UserPhoneEntry(com.serotonin.m2m2.vo.mailingList.UserPhoneEntry) PhoneEntry(com.serotonin.m2m2.vo.mailingList.PhoneEntry) HashSet(java.util.HashSet)

Aggregations

User (com.serotonin.m2m2.vo.User)1 AddressEntry (com.serotonin.m2m2.vo.mailingList.AddressEntry)1 MailingList (com.serotonin.m2m2.vo.mailingList.MailingList)1 PhoneEntry (com.serotonin.m2m2.vo.mailingList.PhoneEntry)1 UserEntry (com.serotonin.m2m2.vo.mailingList.UserEntry)1 UserPhoneEntry (com.serotonin.m2m2.vo.mailingList.UserPhoneEntry)1 HashSet (java.util.HashSet)1