calculate dlock charges on dlock file upload. Refactor member lookup
This commit is contained in:
@@ -30,34 +30,39 @@ const uploadDoorLockData = (req, res) => {
|
|||||||
unknownMembers.push(...parserResult.unknownMembers);
|
unknownMembers.push(...parserResult.unknownMembers);
|
||||||
});
|
});
|
||||||
|
|
||||||
const asyncJobs = [];
|
const asyncWriteJobs = [];
|
||||||
|
|
||||||
fetchAllBookings()
|
parsedData.forEach((entry) => asyncWriteJobs.push(writeDoorLockEvent(entry)));
|
||||||
.then((bookingEntries) => {
|
|
||||||
bookingEntries.forEach((bookingEntry) => asyncJobs.push(writeBookingReservation(bookingEntry)));
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
res.status(500).send(error);
|
|
||||||
return;
|
|
||||||
});
|
|
||||||
|
|
||||||
parsedData.forEach((entry) => asyncJobs.push(writeDoorLockEvent(entry)));
|
Promise.all(asyncWriteJobs)
|
||||||
|
|
||||||
Promise.all(asyncJobs)
|
|
||||||
.then(() => {
|
.then(() => {
|
||||||
res.json({
|
res.json({
|
||||||
parsedData,
|
parsedData,
|
||||||
parserErrors,
|
parserErrors,
|
||||||
unknownMembers
|
unknownMembers
|
||||||
});
|
});
|
||||||
|
|
||||||
calculateDoorLockCharges();
|
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.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);
|
console.log(error);
|
||||||
res.status(500).send(integrationServiceErrors.FAILED_TO_SAVE_DATA_GENERIC);
|
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) => {
|
.catch((error) => {
|
||||||
res.status(500).send(error);
|
res.status(500).send(error);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const {
|
|||||||
csvParserErrors,
|
csvParserErrors,
|
||||||
} = require('../../constants/constants');
|
} = require('../../constants/constants');
|
||||||
|
|
||||||
const { fetchAllMembers, findMember } = require('../officeRnD/members');
|
const { fetchAllMembers } = require('../officeRnD/members');
|
||||||
const { getMappingsFromDatabase } = require('../officeRnD/resources');
|
const { getMappingsFromDatabase } = require('../officeRnD/resources');
|
||||||
|
|
||||||
const extractMappingFromFileName = (fileName) => {
|
const extractMappingFromFileName = (fileName) => {
|
||||||
@@ -46,6 +46,7 @@ const parseDoorLockDataFile = (file) => {
|
|||||||
Promise.all(prefetchDataJobs)
|
Promise.all(prefetchDataJobs)
|
||||||
.then(result => {
|
.then(result => {
|
||||||
const mappings = result[0];
|
const mappings = result[0];
|
||||||
|
const allMembers = result[1];
|
||||||
|
|
||||||
const mappingFromFileName = extractMappingFromFileName(file.name);
|
const mappingFromFileName = extractMappingFromFileName(file.name);
|
||||||
const mappingObject = checkIfMappingExsists(mappingFromFileName, mappings);
|
const mappingObject = checkIfMappingExsists(mappingFromFileName, mappings);
|
||||||
@@ -103,7 +104,7 @@ const parseDoorLockDataFile = (file) => {
|
|||||||
const secondEntry = results[i+1];
|
const secondEntry = results[i+1];
|
||||||
|
|
||||||
if (firstEntry && (firstEntry.event === USER_ENTRY_EVENT)){
|
if (firstEntry && (firstEntry.event === USER_ENTRY_EVENT)){
|
||||||
const memberObject = findMember(firstEntry.name);
|
const memberObject = allMembers.find(member => member.name === firstEntry.name);
|
||||||
|
|
||||||
if (!memberObject){
|
if (!memberObject){
|
||||||
//Check if member is already labeled as unknown
|
//Check if member is already labeled as unknown
|
||||||
|
|||||||
@@ -2,20 +2,19 @@
|
|||||||
|
|
||||||
const { API } = require('../../helpers/api');
|
const { API } = require('../../helpers/api');
|
||||||
|
|
||||||
const membersList = [];
|
|
||||||
|
|
||||||
const fetchAllMembers = () => {
|
const fetchAllMembers = () => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
API.get('/members')
|
API.get('/members')
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
|
const cleanedResult = [];
|
||||||
const members = result.data || [];
|
const members = result.data || [];
|
||||||
members.forEach((member) => {
|
members.forEach((member) => {
|
||||||
membersList.push({
|
cleanedResult.push({
|
||||||
name: member.name,
|
name: member.name,
|
||||||
memberId: member['_id'],
|
memberId: member['_id'],
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
resolve();
|
resolve(cleanedResult);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
reject(error);
|
reject(error);
|
||||||
@@ -23,11 +22,6 @@ const fetchAllMembers = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const findMember = (memberName) => {
|
|
||||||
return membersList.find((member) => member.name === memberName);
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
fetchAllMembers,
|
fetchAllMembers,
|
||||||
findMember,
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user