req.onsuccess = function()

in Frontend/connect-ccp-metric-worker.js [29:72]


req.onsuccess = function(e) {
  //On success, initialize the database for processing records
  db = req.result;
  self.postMessage("Successfully opened db");
  var completeCountRequest = db.transaction(["contactsComplete"]).objectStore("contactsComplete").count();
  var currentContactsCompleteRequest = db.transaction(["contactsComplete"]).objectStore("contactsComplete").getAll();
  var currentContactsPendingRequest = db.transaction(["contactsPending"]).objectStore("contactsPending").getAll();
  busy++;
  
  completeCountRequest.onsuccess = function () {
    completeObjectStoreLength = completeCountRequest.result; //Store the count of currently completed contacts pending submission to the API
    busy--;
  };
  busy++;
  
  currentContactsCompleteRequest.onsuccess = function () {
    postMessage({type: 'initializedPendingContact', contacts: currentContactsCompleteRequest.result}); //Any contacts that are not ready to be submitted to the API and are potentially in progress (i.e., due to browser refresh are loaded back into page memory to have additional data appended)
    busy--;
  };
  busy++;

  currentContactsPendingRequest.onsuccess = function () {
      currentContactsPendingRequest.result.forEach( (contact) => {
        if (Date.parse(contact['initialTimestamp']) < Date.now()-(pendingRecordTimeoutSeconds*1000)) {
          storeContactTraceStream(contact); 
        } else {
          postMessage({type: 'initializedPendingContact', contacts: [contact]});
        }
      });
    busy--;
  };
  completeCountRequest.onerror = function () {
    postMessage('completeCountRequest error'); 
    busy--;
  };
  currentContactsCompleteRequest.onerror = function () {
    postMessage('currentContactsCompleteRequest error'); 
    busy--;
  };
  currentContactsPendingRequest.onerror = function () {
    postMessage('currentContactsPendingRequest error'); 
    busy--;
  };
};