const db = firebase.firestore(); let dbSnapshot = null; function db_testCompleted(obj) { if (obj.wpm == 0 || obj.wpm > 350 || obj.acc < 50 || obj.acc > 100) return false; let uid = ""; let user = firebase.auth().currentUser; if (user) { uid = user.uid; } try{ db.collection(`users/${uid}/results`).add(obj); // db.collection(`results`).add(obj); }catch(e){ showNotification("Error saving result! Please contact Miodec on Discord.",5000); } } async function db_getUserResults() { let user = firebase.auth().currentUser; if (user == null) return false; let ret = []; // await db.collection('results') // .orderBy('timestamp', 'desc') // .where('uid', '==', user.uid) // .get() // .then(data => { // // console.log('getting data from db!'); // data.docs.forEach(doc => { // ret.push(doc.data()); // }) // }) await db.collection(`users/${user.uid}/results/`) .orderBy('timestamp', 'desc') .get() .then(data => { // console.log('getting data from db!'); data.docs.forEach(doc => { ret.push(doc.data()); }) }) dbSnapshot = ret; return ret; } async function db_getUserHighestWpm(mode, mode2, punctuation, language, difficulty) { function cont() { let topWpm = 0; dbSnapshot.forEach(result => { if (result.mode == mode && result.mode2 == mode2 && result.punctuation == punctuation && result.language == language && result.difficulty == difficulty) { if (result.wpm > topWpm) { topWpm = result.wpm; } } }) return topWpm; } let retval; if (dbSnapshot == null) { await db_getUserResults().then(data => { retval = cont(); }); } else { retval = cont(); } return retval; } function db_addEmailToQueue(type, body) { let from = 'Annonymous'; let subject = ''; if (type == 'bug') { subject = 'New Bug Report'; } else if (type == 'feature') { subject = 'New Feature Request'; } else if (type == 'feedback') { subject = 'New Feedback'; } else { showNotification('Error: Unsupported type',3000); return; } if (firebase.auth().currentUser != null) { from = firebase.auth().currentUser.email + ' (' + firebase.auth().currentUser.uid + ')'; } db.collection('mail').add({ to: "bartnikjack@gmail.com", message: { subject: subject, html: body.replace(/\r\n|\r|\n/g,"
") + "

From: " + from, } }).then(() => { showNotification('Email sent',3000); }).catch((e) => { showNotification('Error while sending email: ' + e,5000); }); }