in Frontend/connect-ccp-metric-worker.js [78:113]
function storeContactTraceStream(record, eventtype) {
let transaction = db.transaction(["contactsPending", "contactsComplete"], "readwrite");
busy++;
transaction.oncomplete = function(event) {
postMessage({type: 'contactStored', contact: {contactId: record.contactId}});
busy--;
};
transaction.onerror = function(event) {
console.log('Error storing ' + record);
busy--;
};
let completeObjectStore = transaction.objectStore("contactsComplete");
let pendingObjectStore = transaction.objectStore("contactsPending");
if ((record['stageEnded'] && eventtype == 'Destroyed') || record['stageError'] || Date.parse(record['initialTimestamp']) < Date.now()-(pendingRecordTimeoutSeconds*1000)) {
//If record has errored, ended, or has been pending for more than 24 hours, mark as complete
var request = completeObjectStore.put(record);
request.onsuccess = function(event) {
// console.log("inserted " + JSON.stringify(record) + " to completeObjectStore");
pendingObjectStore.delete(record.contactId); // Remove record from pending object store.
};
var completeCountRequest = completeObjectStore.count();
completeCountRequest.onsuccess = function () {
completeObjectStoreLength = completeCountRequest.result;
};
} else {
var request = pendingObjectStore.put(record);
request.onsuccess = function(event) {
// console.log("inserted " + JSON.stringify(record) + " to pendingObjectStore");
}
}
};