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) => {
|
||||
|
||||
};
|
||||
@@ -62,4 +79,5 @@ module.exports = {
|
||||
getAllIncidents,
|
||||
getUnscheduledIncidents,
|
||||
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 { 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 express = require('express');
|
||||
@@ -14,10 +16,13 @@ router.post('/doorLock/upload', uploadDoorLockData);
|
||||
router.get('/integration/mappings', getKnownOfficeResourceMappings);
|
||||
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/unlockedIncidents', getUnlockedIncidents);
|
||||
router.get('/integration/report/unscheduledIncidents', getUnscheduledIncidents);
|
||||
|
||||
router.get('/officeRnD/membersList', fetchMembersList);
|
||||
|
||||
// temporary route, manually trigger door lock charge calculations
|
||||
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 { fetchOffices, fetchResources } = require('../officeRnD/resources');
|
||||
|
||||
const getUnlockedIncidents = (startDate, endDate) => {
|
||||
const getUnlockedIncidents = (startDate, endDate, memberId) => {
|
||||
const attributes = ['id', 'memberId', 'resourceId', 'bookingStart', 'bookingEnd', 'incidentLevel', 'incidentLevelPrice'];
|
||||
|
||||
const filters = (startDate && endDate) ? {
|
||||
bookingStart: {
|
||||
const filters = {};
|
||||
|
||||
if (startDate && endDate) {
|
||||
filters.bookingStart = {
|
||||
[Op.and]: {
|
||||
[Op.gte]: startDate.utc().toISOString(),
|
||||
[Op.lte]: endDate.utc().toISOString(),
|
||||
}
|
||||
},
|
||||
} : null;
|
||||
}
|
||||
}
|
||||
|
||||
if (memberId){
|
||||
filters.memberId = memberId;
|
||||
}
|
||||
|
||||
return db.unlockedIncident.findAll({
|
||||
attributes,
|
||||
@@ -31,7 +37,7 @@ const getUnlockedIncidents = (startDate, endDate) => {
|
||||
});
|
||||
};
|
||||
|
||||
const getUnscheduledIncidents = (startDate, endDate) => {
|
||||
const getUnscheduledIncidents = (startDate, endDate, memberId) => {
|
||||
const attributes = [
|
||||
'id',
|
||||
'memberId',
|
||||
@@ -45,14 +51,20 @@ const getUnscheduledIncidents = (startDate, endDate) => {
|
||||
'totalChargeFee'
|
||||
];
|
||||
|
||||
const filters = (startDate && endDate) ? {
|
||||
bookingStart: {
|
||||
const filters = {};
|
||||
|
||||
if (startDate && endDate) {
|
||||
filters.bookingStart = {
|
||||
[Op.and]: {
|
||||
[Op.gte]: startDate.utc().toISOString(),
|
||||
[Op.lte]: endDate.utc().toISOString(),
|
||||
}
|
||||
},
|
||||
} : null;
|
||||
}
|
||||
}
|
||||
|
||||
if (memberId){
|
||||
filters.memberId = memberId;
|
||||
}
|
||||
|
||||
return db.unscheduledIncident.findAll({
|
||||
attributes,
|
||||
@@ -67,7 +79,7 @@ const formatTime = (timestamp) => {
|
||||
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) => {
|
||||
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)
|
||||
.then((data) => {
|
||||
|
||||
Reference in New Issue
Block a user