improve report data sent from backend

This commit is contained in:
Bilal Catic
2019-06-17 12:44:57 +02:00
parent cd50e1e671
commit f9bd84c9c5

View File

@@ -1,9 +1,12 @@
'use strict'; 'use strict';
const moment = require('moment-timezone');
const db = require('../../models/index'); const db = require('../../models/index');
const { incidentType } = require('../../constants/constants'); const { incidentType } = require('../../constants/constants');
const { fetchAllMembers } = require('../officeRnD/members'); const { fetchAllMembers } = require('../officeRnD/members');
const { fetchOffices, fetchResources } = require('../officeRnD/resources');
const getUnlockedIncidents = () => { const getUnlockedIncidents = () => {
const attributes = ['id', 'memberId', 'resourceId', 'bookingStart', 'bookingEnd', 'incidentLevel', 'incidentLevelPrice']; const attributes = ['id', 'memberId', 'resourceId', 'bookingStart', 'bookingEnd', 'incidentLevel', 'incidentLevelPrice'];
@@ -38,19 +41,30 @@ const getUnscheduledIncidents = () => {
}); });
}; };
const formatTime = (timestamp) => {
const timezone = process.env.UI_TIMEZONE || 'America/Los_Angeles';
return moment.tz(timestamp, timezone).format('MM/DD/YYYY hh:mm a');
};
const getAllDoorLockIncidents = () => { const getAllDoorLockIncidents = () => {
return new Promise ((resolve, reject) => { return new Promise ((resolve, reject) => {
const dataFetchJobs = [fetchAllMembers(), getUnlockedIncidents(), getUnscheduledIncidents()]; const dataFetchJobs = [fetchAllMembers(), fetchOffices(), fetchResources(), getUnlockedIncidents(), getUnscheduledIncidents()];
Promise.all(dataFetchJobs) Promise.all(dataFetchJobs)
.then((data) => { .then((data) => {
const members = data[0]; const members = data[0];
const unlockedIncidents = data[1]; const offices = data[1];
const unscheduledIncidents = data[2]; const resources = data[2];
const unlockedIncidents = data[3];
const unscheduledIncidents = data[4];
const membersMap = {}; const membersMap = {};
const officesMap = {};
const resourcesMap = {};
members.forEach((member) => membersMap[member.memberId] = member); members.forEach((member) => membersMap[member.memberId] = member);
offices.forEach((office) => officesMap[office.officeId] = office);
resources.forEach((resource) => resourcesMap[resource.resourceId] = resource);
const allIncidents = []; const allIncidents = [];
@@ -59,10 +73,10 @@ const getAllDoorLockIncidents = () => {
incidentId: unlockedIncident.id, incidentId: unlockedIncident.id,
memberId: unlockedIncident.memberId, memberId: unlockedIncident.memberId,
memberName: membersMap[unlockedIncident.memberId].name, memberName: membersMap[unlockedIncident.memberId].name,
resourceName: '', resourceName: resourcesMap[unlockedIncident.resourceId].resourceName,
officeName: '', officeName: officesMap[resourcesMap[unlockedIncident.resourceId].officeId].officeName,
bookingStart: unlockedIncident.bookingStart, bookingStart: formatTime(unlockedIncident.bookingStart),
bookingEnd: unlockedIncident.bookingEnd, bookingEnd: formatTime(unlockedIncident.bookingEnd),
incidentType: incidentType.UNLOCKED_INCIDENT, incidentType: incidentType.UNLOCKED_INCIDENT,
incidentLevel: unlockedIncident.incidentLevel, incidentLevel: unlockedIncident.incidentLevel,
incidentPrice: unlockedIncident.incidentLevelPrice, incidentPrice: unlockedIncident.incidentLevelPrice,
@@ -74,10 +88,10 @@ const getAllDoorLockIncidents = () => {
incidentId: unscheduledIncident.id, incidentId: unscheduledIncident.id,
memberId: unscheduledIncident.memberId, memberId: unscheduledIncident.memberId,
memberName: membersMap[unscheduledIncident.memberId].name, memberName: membersMap[unscheduledIncident.memberId].name,
resourceName: '', resourceName: resourcesMap[unscheduledIncident.resourceId].resourceName,
officeName: '', officeName: officesMap[resourcesMap[unscheduledIncident.resourceId].officeId].officeName,
bookingStart: unscheduledIncident.bookingStart, bookingStart: formatTime(unscheduledIncident.bookingStart),
bookingEnd: unscheduledIncident.bookingEnd, bookingEnd: formatTime(unscheduledIncident.bookingEnd),
incidentType: incidentType.UNSCHEDULED_INCIDENT, incidentType: incidentType.UNSCHEDULED_INCIDENT,
timeIntervalsToCharge: unscheduledIncident.timeIntervalsToCharge, timeIntervalsToCharge: unscheduledIncident.timeIntervalsToCharge,
chargePrice: unscheduledIncident.chargePrice, chargePrice: unscheduledIncident.chargePrice,