From f9bd84c9c5b742d041e68ef4af81df1f646ae4af Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Mon, 17 Jun 2019 12:44:57 +0200 Subject: [PATCH] improve report data sent from backend --- services/integration/reports.js | 36 +++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/services/integration/reports.js b/services/integration/reports.js index ba2200a..ce54691 100644 --- a/services/integration/reports.js +++ b/services/integration/reports.js @@ -1,9 +1,12 @@ 'use strict'; +const moment = require('moment-timezone'); + const db = require('../../models/index'); const { incidentType } = require('../../constants/constants'); const { fetchAllMembers } = require('../officeRnD/members'); +const { fetchOffices, fetchResources } = require('../officeRnD/resources'); const getUnlockedIncidents = () => { 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 = () => { return new Promise ((resolve, reject) => { - const dataFetchJobs = [fetchAllMembers(), getUnlockedIncidents(), getUnscheduledIncidents()]; + const dataFetchJobs = [fetchAllMembers(), fetchOffices(), fetchResources(), getUnlockedIncidents(), getUnscheduledIncidents()]; Promise.all(dataFetchJobs) .then((data) => { const members = data[0]; - const unlockedIncidents = data[1]; - const unscheduledIncidents = data[2]; + const offices = data[1]; + const resources = data[2]; + const unlockedIncidents = data[3]; + const unscheduledIncidents = data[4]; const membersMap = {}; + const officesMap = {}; + const resourcesMap = {}; members.forEach((member) => membersMap[member.memberId] = member); + offices.forEach((office) => officesMap[office.officeId] = office); + resources.forEach((resource) => resourcesMap[resource.resourceId] = resource); const allIncidents = []; @@ -59,10 +73,10 @@ const getAllDoorLockIncidents = () => { incidentId: unlockedIncident.id, memberId: unlockedIncident.memberId, memberName: membersMap[unlockedIncident.memberId].name, - resourceName: '', - officeName: '', - bookingStart: unlockedIncident.bookingStart, - bookingEnd: unlockedIncident.bookingEnd, + resourceName: resourcesMap[unlockedIncident.resourceId].resourceName, + officeName: officesMap[resourcesMap[unlockedIncident.resourceId].officeId].officeName, + bookingStart: formatTime(unlockedIncident.bookingStart), + bookingEnd: formatTime(unlockedIncident.bookingEnd), incidentType: incidentType.UNLOCKED_INCIDENT, incidentLevel: unlockedIncident.incidentLevel, incidentPrice: unlockedIncident.incidentLevelPrice, @@ -74,10 +88,10 @@ const getAllDoorLockIncidents = () => { incidentId: unscheduledIncident.id, memberId: unscheduledIncident.memberId, memberName: membersMap[unscheduledIncident.memberId].name, - resourceName: '', - officeName: '', - bookingStart: unscheduledIncident.bookingStart, - bookingEnd: unscheduledIncident.bookingEnd, + resourceName: resourcesMap[unscheduledIncident.resourceId].resourceName, + officeName: officesMap[resourcesMap[unscheduledIncident.resourceId].officeId].officeName, + bookingStart: formatTime(unscheduledIncident.bookingStart), + bookingEnd: formatTime(unscheduledIncident.bookingEnd), incidentType: incidentType.UNSCHEDULED_INCIDENT, timeIntervalsToCharge: unscheduledIncident.timeIntervalsToCharge, chargePrice: unscheduledIncident.chargePrice,