handle fetching members list and members incidents list
This commit is contained in:
@@ -48,6 +48,23 @@ const getAllIncidents = (req, res) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getMemberIncidents = (req, res) => {
|
||||||
|
const memberId = req.params.memberId;
|
||||||
|
const dateRange = {
|
||||||
|
startDate: req.params.startDate,
|
||||||
|
endDate: req.params.endDate,
|
||||||
|
};
|
||||||
|
|
||||||
|
getAllDoorLockIncidents(dateRange, memberId)
|
||||||
|
.then((incidents) => {
|
||||||
|
res.send(incidents);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
res.send([]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const getUnlockedIncidents = (req, res) => {
|
const getUnlockedIncidents = (req, res) => {
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -62,4 +79,5 @@ module.exports = {
|
|||||||
getAllIncidents,
|
getAllIncidents,
|
||||||
getUnscheduledIncidents,
|
getUnscheduledIncidents,
|
||||||
getUnlockedIncidents,
|
getUnlockedIncidents,
|
||||||
|
getMemberIncidents,
|
||||||
};
|
};
|
||||||
|
|||||||
18
controllers/officeRnD.js
Normal file
18
controllers/officeRnD.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const { fetchAllMembers } = require('../services/officeRnD/members');
|
||||||
|
|
||||||
|
const fetchMembersList = (req, res) => {
|
||||||
|
fetchAllMembers()
|
||||||
|
.then((members) => {
|
||||||
|
res.send(members);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
res.send([]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
fetchMembersList,
|
||||||
|
};
|
||||||
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
const { apiStatusCheck } = require('../controllers/apiStatusCheck');
|
const { apiStatusCheck } = require('../controllers/apiStatusCheck');
|
||||||
const { uploadDoorLockData } = require('../controllers/doorLock');
|
const { uploadDoorLockData } = require('../controllers/doorLock');
|
||||||
const { getKnownOfficeResourceMappings, addNewMapping, getAllIncidents,getUnscheduledIncidents, getUnlockedIncidents } = require('../controllers/integration');
|
const { getKnownOfficeResourceMappings, addNewMapping, getAllIncidents, getMemberIncidents,getUnscheduledIncidents, getUnlockedIncidents } = require('../controllers/integration');
|
||||||
|
const { fetchMembersList } = require('../controllers/officeRnD');
|
||||||
|
|
||||||
const { calculateDoorLockCharges } = require('../services/integration/doorLockCharges');
|
const { calculateDoorLockCharges } = require('../services/integration/doorLockCharges');
|
||||||
|
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
@@ -14,10 +16,13 @@ router.post('/doorLock/upload', uploadDoorLockData);
|
|||||||
router.get('/integration/mappings', getKnownOfficeResourceMappings);
|
router.get('/integration/mappings', getKnownOfficeResourceMappings);
|
||||||
router.post('/integration/mappings', addNewMapping);
|
router.post('/integration/mappings', addNewMapping);
|
||||||
|
|
||||||
|
router.get('/integration/report/member/:memberId/:startDate/:endDate', getMemberIncidents);
|
||||||
router.get('/integration/report/allIncidents/:startDate/:endDate', getAllIncidents);
|
router.get('/integration/report/allIncidents/:startDate/:endDate', getAllIncidents);
|
||||||
router.get('/integration/report/unlockedIncidents', getUnlockedIncidents);
|
router.get('/integration/report/unlockedIncidents', getUnlockedIncidents);
|
||||||
router.get('/integration/report/unscheduledIncidents', getUnscheduledIncidents);
|
router.get('/integration/report/unscheduledIncidents', getUnscheduledIncidents);
|
||||||
|
|
||||||
|
router.get('/officeRnD/membersList', fetchMembersList);
|
||||||
|
|
||||||
// temporary route, manually trigger door lock charge calculations
|
// temporary route, manually trigger door lock charge calculations
|
||||||
router.get('/calculate', (req, res) => { calculateDoorLockCharges(); res.send();});
|
router.get('/calculate', (req, res) => { calculateDoorLockCharges(); res.send();});
|
||||||
|
|
||||||
|
|||||||
@@ -10,17 +10,23 @@ const { incidentType, UI_TIMEZONE, DEFAULT_DATE_FORMAT, integrationServiceErrors
|
|||||||
const { fetchAllMembers } = require('../officeRnD/members');
|
const { fetchAllMembers } = require('../officeRnD/members');
|
||||||
const { fetchOffices, fetchResources } = require('../officeRnD/resources');
|
const { fetchOffices, fetchResources } = require('../officeRnD/resources');
|
||||||
|
|
||||||
const getUnlockedIncidents = (startDate, endDate) => {
|
const getUnlockedIncidents = (startDate, endDate, memberId) => {
|
||||||
const attributes = ['id', 'memberId', 'resourceId', 'bookingStart', 'bookingEnd', 'incidentLevel', 'incidentLevelPrice'];
|
const attributes = ['id', 'memberId', 'resourceId', 'bookingStart', 'bookingEnd', 'incidentLevel', 'incidentLevelPrice'];
|
||||||
|
|
||||||
const filters = (startDate && endDate) ? {
|
const filters = {};
|
||||||
bookingStart: {
|
|
||||||
|
if (startDate && endDate) {
|
||||||
|
filters.bookingStart = {
|
||||||
[Op.and]: {
|
[Op.and]: {
|
||||||
[Op.gte]: startDate.utc().toISOString(),
|
[Op.gte]: startDate.utc().toISOString(),
|
||||||
[Op.lte]: endDate.utc().toISOString(),
|
[Op.lte]: endDate.utc().toISOString(),
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
} : null;
|
}
|
||||||
|
|
||||||
|
if (memberId){
|
||||||
|
filters.memberId = memberId;
|
||||||
|
}
|
||||||
|
|
||||||
return db.unlockedIncident.findAll({
|
return db.unlockedIncident.findAll({
|
||||||
attributes,
|
attributes,
|
||||||
@@ -31,7 +37,7 @@ const getUnlockedIncidents = (startDate, endDate) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const getUnscheduledIncidents = (startDate, endDate) => {
|
const getUnscheduledIncidents = (startDate, endDate, memberId) => {
|
||||||
const attributes = [
|
const attributes = [
|
||||||
'id',
|
'id',
|
||||||
'memberId',
|
'memberId',
|
||||||
@@ -45,14 +51,20 @@ const getUnscheduledIncidents = (startDate, endDate) => {
|
|||||||
'totalChargeFee'
|
'totalChargeFee'
|
||||||
];
|
];
|
||||||
|
|
||||||
const filters = (startDate && endDate) ? {
|
const filters = {};
|
||||||
bookingStart: {
|
|
||||||
|
if (startDate && endDate) {
|
||||||
|
filters.bookingStart = {
|
||||||
[Op.and]: {
|
[Op.and]: {
|
||||||
[Op.gte]: startDate.utc().toISOString(),
|
[Op.gte]: startDate.utc().toISOString(),
|
||||||
[Op.lte]: endDate.utc().toISOString(),
|
[Op.lte]: endDate.utc().toISOString(),
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
} : null;
|
}
|
||||||
|
|
||||||
|
if (memberId){
|
||||||
|
filters.memberId = memberId;
|
||||||
|
}
|
||||||
|
|
||||||
return db.unscheduledIncident.findAll({
|
return db.unscheduledIncident.findAll({
|
||||||
attributes,
|
attributes,
|
||||||
@@ -67,7 +79,7 @@ const formatTime = (timestamp) => {
|
|||||||
return moment.tz(timestamp, UI_TIMEZONE).format('MM/DD/YYYY hh:mm a');
|
return moment.tz(timestamp, UI_TIMEZONE).format('MM/DD/YYYY hh:mm a');
|
||||||
};
|
};
|
||||||
|
|
||||||
const getAllDoorLockIncidents = (dateRange) => {
|
const getAllDoorLockIncidents = (dateRange, memberId) => {
|
||||||
return new Promise ((resolve, reject) => {
|
return new Promise ((resolve, reject) => {
|
||||||
let startDate, endDate;
|
let startDate, endDate;
|
||||||
|
|
||||||
@@ -81,7 +93,7 @@ const getAllDoorLockIncidents = (dateRange) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const dataFetchJobs = [fetchAllMembers(), fetchOffices(), fetchResources(), getUnlockedIncidents(startDate, endDate), getUnscheduledIncidents(startDate, endDate)];
|
const dataFetchJobs = [fetchAllMembers(), fetchOffices(), fetchResources(), getUnlockedIncidents(startDate, endDate, memberId), getUnscheduledIncidents(startDate, endDate, memberId)];
|
||||||
|
|
||||||
Promise.all(dataFetchJobs)
|
Promise.all(dataFetchJobs)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user