updateScoreNode function

Future updateScoreNode(
  1. dynamic type,
  2. dynamic path
)

Implementation

Future updateScoreNode(var type, var path) async {
  var uuid = '';
  type == Types.users ? uuid = Storage.userUUID : uuid = Storage.deviceUUID;

  try {
    var scoreNode = await Storage.controller!.get(
        ':$type:' + uuid + ':' + Storage.geigerIndicatorUUID + ':data:$path');

    await crtThreatScore(type);

    NodeValue geigerThreatscores = NodeValueImpl(
        'threats_score', jsonEncode(JsonObject.threatScoreValues));
    scoreNode.updateValue(geigerThreatscores);

    var geigerScore = 0.0;
    type == Types.geigerScoreAggregate
        ? geigerScore = CoreValues.gagg
        : geigerScore = await crtTotalThreatScore(type);

    NodeValue geigerScoreNode =
        NodeValueImpl('GEIGER_score', geigerScore.toString());
    scoreNode.updateValue(geigerScoreNode);

    JsonObject.geigerNode['threatScores'] = JsonObject.threatScoreValues;
    JsonObject.geigerNode['geigerScore'] = geigerScoreNode;

    var len = 0;
    type == Types.devices
        ? len =
            CoreValues.devicePositive.length + CoreValues.deviceNegative.length
        : len = CoreValues.userPositive.length + CoreValues.userNegative.length;

    var numberMetrics = '';
    type == Types.geigerScoreAggregate
        ? numberMetrics = CoreValues.nagg.toString()
        : numberMetrics = len.toString();

    NodeValue geigerNumMetrics = NodeValueImpl('number_metrics', numberMetrics);
    scoreNode.updateValue(geigerNumMetrics);

    if (path != Types.geigerScoreAggregate) {
      NodeValue implementedRecommendations =
          NodeValueImpl('implementedRecommendations', ''); //?????
      scoreNode.updateValue(implementedRecommendations);

      var objectName = '';
      type == Types.devices
          ? objectName = 'geigerScoreDevice'
          : objectName = 'geigerScoreUsers';
      JsonObject.geigerNodeKey[objectName] = JsonObject.geigerNode;

      type == Types.devices
          ? JsonObject.geigerScoreDevice = JsonObject.geigerNode
          : JsonObject.geigerScoreUser = JsonObject.geigerNode;
    } else {
      JsonObject.geigerNodeKey['geigerScoreAggregate'] = JsonObject.geigerNode;
      JsonObject.geigerScoreAggregate = JsonObject.geigerNode;
    }

    NodeValue geigerJsonObject =
        NodeValueImpl('geigerJsonObj', jsonEncode(JsonObject.geigerNodeKey));
    scoreNode.updateValue(geigerJsonObject);

    await Storage.controller!.update(scoreNode);

    //print(scoreNode);

  } catch (e) {
    // ignore: avoid_print
    print(e);
    return;
  }
}