Merge pull request #7678 from thingsboard/feature/attribute_nodes_add_options_send_notification

Backport ability to specify scope in the metadata
This commit is contained in:
Andrew Shvayka 2022-11-24 17:54:16 +02:00 committed by GitHub
commit c35c4e991b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,8 +51,8 @@ import java.util.List;
public class TbMsgAttributesNode implements TbNode {
private TbMsgAttributesNodeConfiguration config;
private String scope;
private boolean sendAttributesUpdateNotification;
private static final String SCOPE = "scope";
@Override
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
@ -60,10 +60,6 @@ public class TbMsgAttributesNode implements TbNode {
if (config.getNotifyDevice() == null) {
config.setNotifyDevice(true);
}
this.scope = config.getScope();
this.sendAttributesUpdateNotification = config.isSendAttributesUpdatedNotification()
&& !DataConstants.CLIENT_SCOPE.equals(scope);
}
@Override
@ -78,7 +74,12 @@ public class TbMsgAttributesNode implements TbNode {
ctx.tellSuccess(msg);
return;
}
String scope = msg.getMetaData().getValue(SCOPE);
if (StringUtils.isEmpty(scope)) {
scope = config.getScope();
}
String notifyDeviceStr = msg.getMetaData().getValue("notifyDevice");
boolean sendAttributesUpdateNotification = checkSendNotification(scope);
ctx.getTelemetryService().saveAndNotify(
ctx.getTenantId(),
msg.getOriginator(),
@ -91,4 +92,8 @@ public class TbMsgAttributesNode implements TbNode {
);
}
private boolean checkSendNotification(String scope){
return config.isSendAttributesUpdatedNotification() && !DataConstants.CLIENT_SCOPE.equals(scope);
}
}