getExistScoreNodes function

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

Check exist geiger score nodes if it does not exist to create node

Implementation

Future getExistScoreNodes(var path, var nodeName, var type) async {

  var strPath = '$path$nodeName';

  try {

    var node = await Storage.controller.get(strPath);

          ///Check exist metrics (implemented recommendations)
          if (nodeName == Types.geigerScoreUser || nodeName == Types.geigerScoreDevice) {

            try {
                    var temp = await node.getValue('implementedRecommendations');
                    var iReco = temp!.getValue('en').toString().trim();
                    var list = iReco.split(',');
                    logger.d('implementedRecommendations >> $list');

                    if(list.isNotEmpty && list.toString() != '[]') {

                        for(String uuid in list){
                            type == Types.users ? CoreValues.uuidUserImplementedRecommendations.add(uuid) : CoreValues.uuidDeviceImplementedRecommendations.add(uuid);
                            await getImplementedRecommendations(uuid);
                        }
                      logger.d('length of $type implementedRecommendations  >> ${type == Types.users ? CoreValues.uuidUserImplementedRecommendations.length : CoreValues.uuidDeviceImplementedRecommendations.length}');
                    }
             }catch (e){
            logger.e(e.toString());
            }

        }
  } on StorageException{
      logger.i('Stare to create a $nodeName Node, it does not exist');

      ///create geiger score node
      ///this is only created by indicator
      if (nodeName == Types.geigerScoreUser || nodeName == Types.geigerScoreDevice || nodeName == Types.geigerScoreAggregate) {
          await createScoreNode(path, nodeName,type);
      } else if (nodeName == Types.geigerScoreMSE) {
          await createScoreMSENode(path, nodeName);
      } else if (nodeName == Types.recommendations) {
          await createRecommendationNode(path,nodeName);
      }
  }
  catch (e) {
  logger.e(e.toString());

  }
}