createScoreNode function

Future createScoreNode(
  1. dynamic path,
  2. dynamic nodeName,
  3. dynamic type
)

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());
    }
  }
}