calculate dlock charges on dlock file upload. Refactor member lookup

This commit is contained in:
Bilal Catic
2019-06-15 14:46:13 +02:00
parent 596336c41b
commit 803fed2bcf
3 changed files with 26 additions and 26 deletions

View File

@@ -30,34 +30,39 @@ const uploadDoorLockData = (req, res) => {
unknownMembers.push(...parserResult.unknownMembers);
});
const asyncJobs = [];
const asyncWriteJobs = [];
fetchAllBookings()
.then((bookingEntries) => {
bookingEntries.forEach((bookingEntry) => asyncJobs.push(writeBookingReservation(bookingEntry)));
})
.catch((error) => {
res.status(500).send(error);
return;
});
parsedData.forEach((entry) => asyncWriteJobs.push(writeDoorLockEvent(entry)));
parsedData.forEach((entry) => asyncJobs.push(writeDoorLockEvent(entry)));
Promise.all(asyncJobs)
Promise.all(asyncWriteJobs)
.then(() => {
res.json({
parsedData,
parserErrors,
unknownMembers
});
calculateDoorLockCharges();
})
.catch((error) => {
console.log(`${integrationServiceErrors.FAILED_TO_SAVE_BOOKINGS} or ${integrationServiceErrors.FAILED_TO_SAVE_DOOR_LOCK_ENTRIES}`)
console.log(integrationServiceErrors.FAILED_TO_SAVE_DOOR_LOCK_ENTRIES);
console.log(error);
res.status(500).send(integrationServiceErrors.FAILED_TO_SAVE_DATA_GENERIC);
});
fetchAllBookings()
.then((bookingEntries) => {
const asyncJobs = [];
bookingEntries.forEach((bookingEntry) => asyncJobs.push(writeBookingReservation(bookingEntry)));
Promise.all(asyncJobs)
.then(() => {
calculateDoorLockCharges();
});
})
.catch((error) => {
console.log(integrationServiceErrors.FAILED_TO_SAVE_BOOKINGS);
console.log(error);
return;
});
})
.catch((error) => {
res.status(500).send(error);

View File

@@ -15,7 +15,7 @@ const {
csvParserErrors,
} = require('../../constants/constants');
const { fetchAllMembers, findMember } = require('../officeRnD/members');
const { fetchAllMembers } = require('../officeRnD/members');
const { getMappingsFromDatabase } = require('../officeRnD/resources');
const extractMappingFromFileName = (fileName) => {
@@ -46,6 +46,7 @@ const parseDoorLockDataFile = (file) => {
Promise.all(prefetchDataJobs)
.then(result => {
const mappings = result[0];
const allMembers = result[1];
const mappingFromFileName = extractMappingFromFileName(file.name);
const mappingObject = checkIfMappingExsists(mappingFromFileName, mappings);
@@ -103,7 +104,7 @@ const parseDoorLockDataFile = (file) => {
const secondEntry = results[i+1];
if (firstEntry && (firstEntry.event === USER_ENTRY_EVENT)){
const memberObject = findMember(firstEntry.name);
const memberObject = allMembers.find(member => member.name === firstEntry.name);
if (!memberObject){
//Check if member is already labeled as unknown

View File

@@ -2,20 +2,19 @@
const { API } = require('../../helpers/api');
const membersList = [];
const fetchAllMembers = () => {
return new Promise((resolve, reject) => {
API.get('/members')
.then((result) => {
const cleanedResult = [];
const members = result.data || [];
members.forEach((member) => {
membersList.push({
cleanedResult.push({
name: member.name,
memberId: member['_id'],
});
});
resolve();
resolve(cleanedResult);
})
.catch((error) => {
reject(error);
@@ -23,11 +22,6 @@ const fetchAllMembers = () => {
});
};
const findMember = (memberName) => {
return membersList.find((member) => member.name === memberName);
};
module.exports = {
fetchAllMembers,
findMember,
};