Merge pull request #11469 from thingsboard/fix/notification-unknown-recipient
Ignore unknown notification recipient groups
This commit is contained in:
commit
f30cee2f12
@ -300,9 +300,15 @@ public class NotificationController extends BaseController {
|
||||
request.setOriginatorEntityId(user.getId());
|
||||
List<NotificationTarget> targets = request.getTargets().stream()
|
||||
.map(NotificationTargetId::new)
|
||||
.map(targetId -> notificationTargetService.findNotificationTargetById(user.getTenantId(), targetId))
|
||||
.map(targetId -> {
|
||||
NotificationTarget target = notificationTargetService.findNotificationTargetById(user.getTenantId(), targetId);
|
||||
if (target == null) {
|
||||
throw new IllegalArgumentException("Notification target for id " + targetId + " not found");
|
||||
}
|
||||
return target;
|
||||
})
|
||||
.sorted(Comparator.comparing(target -> target.getConfiguration().getType()))
|
||||
.collect(Collectors.toList());
|
||||
.toList();
|
||||
|
||||
NotificationRequestPreview preview = new NotificationRequestPreview();
|
||||
|
||||
|
||||
@ -73,6 +73,7 @@ import org.thingsboard.server.service.telemetry.AbstractSubscriptionService;
|
||||
import org.thingsboard.server.service.ws.notification.sub.NotificationRequestUpdate;
|
||||
import org.thingsboard.server.service.ws.notification.sub.NotificationUpdate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@ -115,12 +116,23 @@ public class DefaultNotificationCenter extends AbstractSubscriptionService imple
|
||||
} else {
|
||||
notificationTemplate = request.getTemplate();
|
||||
}
|
||||
if (notificationTemplate == null) throw new IllegalArgumentException("Template is missing");
|
||||
if (notificationTemplate == null) {
|
||||
throw new IllegalArgumentException("Template is missing");
|
||||
}
|
||||
|
||||
Set<NotificationDeliveryMethod> deliveryMethods = new HashSet<>();
|
||||
List<NotificationTarget> targets = request.getTargets().stream().map(NotificationTargetId::new)
|
||||
.map(id -> notificationTargetService.findNotificationTargetById(tenantId, id))
|
||||
.collect(Collectors.toList());
|
||||
List<NotificationTarget> targets = new ArrayList<>();
|
||||
for (UUID targetId : request.getTargets()) {
|
||||
NotificationTarget target = notificationTargetService.findNotificationTargetById(tenantId, new NotificationTargetId(targetId));
|
||||
if (target != null) {
|
||||
targets.add(target);
|
||||
} else {
|
||||
log.debug("Unknown notification target {} in request {}", targetId, request);
|
||||
}
|
||||
}
|
||||
if (targets.isEmpty()) {
|
||||
throw new IllegalArgumentException("No recipients chosen");
|
||||
}
|
||||
|
||||
NotificationRuleId ruleId = request.getRuleId();
|
||||
notificationTemplate.getConfiguration().getDeliveryMethodsTemplates().forEach((deliveryMethod, template) -> {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user