From 62090e5c82a2d5c412b01514b9905072141de317 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Mon, 12 Sep 2022 22:47:34 +0200 Subject: [PATCH 1/2] filter contact before booking --- main.js | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/main.js b/main.js index fd0dbb4..f9d3e98 100644 --- a/main.js +++ b/main.js @@ -7,22 +7,38 @@ const mongoManager = new MongoManager(); let excelUtil = new ExcelUtil(); let contactList = excelUtil.readContacts() -mongoManager.connect().then(r => +let collectionName = formatDate(new Date()) - android.devices().then((devices) => { - let segmentNumber = contactList.length / devices.length; - for (let i = 0; i < devices.length; i++) { - startWithList(contactList.slice(i * segmentNumber, segmentNumber * (i + 1)), devices[i]); +async function filterAlreadyBookedContacts(contactList) { + let alreadyBookedContacts = await mongoManager.getAllSuccessfulItemsForDay(collectionName); + let contactsToBook = []; + contactList.forEach((contact) => { + if (alreadyBookedContacts.find((bookedContact) => bookedContact.email === contact.mail) === undefined) { + contactsToBook.push(contact) } - })) + }) + return contactsToBook; +} + +mongoManager.connect().then(r => { + filterAlreadyBookedContacts(contactList).then(listToBook => { + console.log(listToBook.length) + android.devices().then((devices) => { + let segmentNumber = listToBook.length / devices.length; + for (let i = 0; i < devices.length; i++) { + startWithList(contactList.slice(i * segmentNumber, segmentNumber * (i + 1)), devices[i]); + } + }) + }) + } +) // Connect to the device. async function needToBook(contact, mongoManager) { - let collectionName = formatDate(new Date()) - let alreadBooked = await mongoManager.getAllSuccessfulItemsForDay(collectionName) + let alreadyBooked = await mongoManager.getAllSuccessfulItemsForDay(collectionName) let toReturn = true; - await alreadBooked.forEach((bookedItem) => { + await alreadyBooked.forEach((bookedItem) => { if (bookedItem.email === contact.mail) { toReturn = false; } From 64073f8aaf9ef485d276e6ead6a526c002296ecf Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 14 Sep 2022 18:26:01 +0200 Subject: [PATCH 2/2] use filtered list instead of old list --- main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.js b/main.js index f9d3e98..2ff5d3c 100644 --- a/main.js +++ b/main.js @@ -26,7 +26,7 @@ mongoManager.connect().then(r => { android.devices().then((devices) => { let segmentNumber = listToBook.length / devices.length; for (let i = 0; i < devices.length; i++) { - startWithList(contactList.slice(i * segmentNumber, segmentNumber * (i + 1)), devices[i]); + startWithList(listToBook.slice(i * segmentNumber, segmentNumber * (i + 1)), devices[i]); } }) })