setGeigerScoreAggregate method

Future<void> setGeigerScoreAggregate({
  1. Locale? language,
  2. required GeigerScoreThreats geigerScoreThreats,
})

set GeigerAggregateScore

@param option language as locale @param list of threatScore object @param optional geigerScore as string

Implementation

Future<void> setGeigerScoreAggregate(
    {Locale? language,
    required GeigerScoreThreats geigerScoreThreats}) async {
  User currentUser = await getUserInfo;

  try {
    _node = await _storageController
        .get(":Users:${currentUser.userId}:gi:data:GeigerScoreAggregate");
    _setUserNodeValues(language, geigerScoreThreats.threatScores,
        geigerScore: geigerScoreThreats.geigerScore);
  } on StorageException {
    Node userNode = NodeImpl(":Users:${currentUser.userId}", "owner");
    await _storageController.addOrUpdate(userNode);

    Node giNode = NodeImpl(":Users:${currentUser.userId}:gi", "owner");
    await _storageController.addOrUpdate(giNode);

    Node nodeData = NodeImpl(":Users:${currentUser.userId}:gi:data", "owner");
    await _storageController.addOrUpdate(nodeData);

    Node aggScoreNode = NodeImpl(
        ":Users:${currentUser.userId}:gi:data:GeigerScoreAggregate", "owner");
    await _storageController.add(aggScoreNode);

    _setUserNodeValuesException(language, aggScoreNode,
        geigerScoreThreats.threatScores, geigerScoreThreats.geigerScore);
  }
}