createScoreNode function
create geiger score node (user, device, aggregate)
Implementation
Future createScoreNode(var path, var nodeName, var type) async {
Node geigerIndicatorUserScoreNode = NodeImpl('$path$nodeName',Types.owner);
NodeValue geigerScore = NodeValueImpl('GEIGER_score', '50');
await geigerIndicatorUserScoreNode.addValue(geigerScore);
NodeValue geigerThreatScores = NodeValueImpl('threats_score', '');
await geigerIndicatorUserScoreNode.addValue(geigerThreatScores);
NodeValue geigerNumberOfMetrics = NodeValueImpl('number_metrics', '0');
await geigerIndicatorUserScoreNode.addValue(geigerNumberOfMetrics);
NodeValue description = NodeValueImpl('description', '');
await geigerIndicatorUserScoreNode.addValue(description);
geigerScore.setDescription('GEIGER user score');
geigerThreatScores.setDescription('GEIGER threat-specific user score');
geigerNumberOfMetrics.setDescription('Number of metrics used in calculation of user score');
if (nodeName != Types.geigerScoreAggregate) {
var implementedRecommendationsReco = '';
type == Types.users ? implementedRecommendationsReco = CoreValues.uuidUserImplementedRecommendations.toString().replaceAll('[','').replaceAll(']','').trim() : implementedRecommendationsReco = CoreValues.uuidDeviceImplementedRecommendations.toString().replaceAll('[','').replaceAll(']','').trim();
NodeValue implementedRecommendations = NodeValueImpl('implementedRecommendations', implementedRecommendationsReco); //add node name (name of threat)
await geigerIndicatorUserScoreNode.addValue(implementedRecommendations);
try {
await Storage.controller.add(geigerIndicatorUserScoreNode);
logger.i('$nodeName Node => ${await Storage.controller.dump('$path$nodeName')} ');
} catch (e) {
logger.e(e.toString());
}
} else {
try {
await Storage.controller.add(geigerIndicatorUserScoreNode);
logger.i('$nodeName Node => ${await Storage.controller.dump('$path$nodeName')} ');
} catch (e) {
logger.e(e.toString());
}
}
}