var getLatestRecord = function()

in source/web_site/js/dash.js [384:495]


  var getLatestRecord = function(){
    console.log('Getting latest records from DynamoDB');
    var params = retrieveParams("ConnectedDevicesCount", totalCallCurrentTime);
    var PerDeviceMaxTempParams = retrieveParams("PerDeviceMaxTemp", maxTempPerDeviceQueryTime);
    var PerDeviceAvgTempParams = retrieveParams("PerDeviceAvgTemp", avgTempPerDeviceQueryTime);
    var PerDeviceMinTempParams = retrieveParams("PerDeviceMinTemp", minTempPerDeviceQueryTime);
    var AvgTempParams = retrieveParams("AvgTempValue", AvgTempValueQueryTime);
    var MinTempParams = retrieveParams("MinTempValue", MinTempValueQueryTime);
    var MaxTempParams = retrieveParams("MaxTempValue", MaxTempValueQueryTime);
    var AvgConnTimeParams = retrieveParams("AvgConnTime", AvgConnTimeQueryTime);
    var AvgDisConnTimeParams = retrieveParams("AvgDisconnTime", AvgDisConnTimeQueryTime);
    var anomalyParams = retrieveParams("DeviceTempAnomalyScore", anomalyScoreCurrentTime);

    var docClient = new AWS.DynamoDB.DocumentClient();

    docClient.query(PerDeviceMaxTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        maxTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, maxTempPerDeviceChart, maxTempPerDeviceQueryTime, splitFunc);
      }
    });

    docClient.query(PerDeviceMinTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        minTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, minTempPerDeviceChart, minTempPerDeviceQueryTime, splitFunc);
      }
    });

    docClient.query(PerDeviceAvgTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        avgTempPerDeviceQueryTime = updateHorizontalBarChart(data, 20, avgTempPerDeviceChart, avgTempPerDeviceQueryTime, splitFunc);
      }
    });

    docClient.query(AvgConnTimeParams, function(err, data) {
      if (err) console.log(err);
      else {
        AvgConnTimeQueryTime = updateLineChart(data, AvgConnTimeCallLabels, AvgConnTimeMap, AvgConnTimeCallChart, AvgConnTimeQueryTime, splitFunc) ;
      }
    });

    docClient.query(AvgDisConnTimeParams, function(err, data) {
      if (err) console.log(err);
      else {
        AvgDisConnTimeQueryTime = updateLineChart(data, AvgDisConnTimeCallLabels, AvgDisConnTimeMap, AvgDisConnTimeCallChart, AvgDisConnTimeQueryTime, splitFunc) ;
      }
    });

    docClient.query(AvgTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        AvgTempValueQueryTime = updateLineChart(data, AvgTempCallLabels, AvgTempCallMap, AvgTempCallChart, AvgTempValueQueryTime, splitFunc) ;
      }
    });

    docClient.query(MinTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        MinTempValueQueryTime = updateLineChart(data, MinTempCallLabels, MinTempCallMap, MinTempCallChart, MinTempValueQueryTime, splitFunc) ;
      }
    });

    docClient.query(MaxTempParams, function(err, data) {
      if (err) console.log(err);
      else {
        MaxTempValueQueryTime = updateLineChart(data, MaxTempCallLabels, MaxTempCallMap, MaxTempCallChart, MaxTempValueQueryTime, splitFunc) ;
      }
    });

    docClient.query(anomalyParams, function(err, data) {
      if (err) console.log(err);
      else {
        var items = data.Items;
        console.log(`anomalyScore data: ${data}`)
        for (let i = 0; i < items.length; i++) {
          console.log(`anomalyscore item: ${items[i]}`);
          anomalyCallLabels.push(splitLabel(items[i].EventTime));
          ddbItem = JSON.parse(items[i].Data);
          anomaly_score_value = Object.values(ddbItem);
          var sum = anomaly_score_value.reduce((previous, current) => current += previous);
          var avg = sum / anomaly_score_value.length;
          anomalyCallMap["Average Anomaly Score"].push(parseFloat(avg));
        }
        if (items.length>0) {
          anomalyScoreCurrentTime = items[items.length-1].EventTime;
          updateData(anomalyChart, anomalyCallLabels, Object.values(anomalyCallMap), Object.keys(anomalyCallMap), true);
        }
      }
    });

    docClient.query(params, function(err, data) {
      if (err) console.log(err);
      else {

        var items = data.Items;
        for (var i = 0; i < items.length; i++) {
          totalConnectedDevices = parseInt((items[i].Data).split(':')[1]);
        }
        var callTime;
        if (items.length > 0) callTime = items[items.length-1].EventTime;
        else callTime = new Date(new Date().getTime() - 200).toISOString().replace('T',' ').replace('Z','');
        totalCallCtx.innerHTML = "<h3>CountConnectedDevices: " + totalConnectedDevices + "</h3>";
        totalCallTimeCtx.innerHTML = "<h4>Last Updated: " + callTime.split(' ')[1] + "</h4>";
      }    
    });

    setTimeout( function() {
      getLatestRecord();
    }, 15000);
  }