From 64abbe4e302da35479fcecf25ae7832419451aa3 Mon Sep 17 00:00:00 2001 From: Timo John Date: Thu, 18 Jun 2020 14:44:39 +0200 Subject: [PATCH] Trivago data added to regions endpoint --- backend/models/getRegionById.js | 23 +++++++++++------ backend/models/getRegions2.js | 25 ++++++++++++------- ...rmatting.js => databaseArrayFormatting.js} | 0 3 files changed, 31 insertions(+), 17 deletions(-) rename backend/util/{climateArrayFormatting.js => databaseArrayFormatting.js} (100%) diff --git a/backend/models/getRegionById.js b/backend/models/getRegionById.js index 18e3c25..784ba75 100644 --- a/backend/models/getRegionById.js +++ b/backend/models/getRegionById.js @@ -1,4 +1,4 @@ -const climateArrayFormatting = require("./../util/climateArrayFormatting.js") +const arrayFormatting = require("../util/databaseArrayFormatting.js") module.exports = async (dbConn, id) => { const region = await dbConn.query( @@ -11,6 +11,7 @@ module.exports = async (dbConn, id) => { rcma.rain_days AS rain_days, rcma.sun_hours AS sun_hours, regions_byt.average_per_day_costs AS average_per_day_costs, + rtma.avg_price_relative AS avg_price_relative, regions_byt.accommodation_costs AS accommodation_costs, regions_byt.food_costs AS food_costs, regions_byt.water_costs AS water_costs, @@ -30,19 +31,25 @@ module.exports = async (dbConn, id) => { FROM region_climate_monthly_avg AS rcma GROUP BY rcma.region_id) rcma ON rcma.region_id = regions.id LEFT JOIN regions_byt ON regions.id = regions_byt.region_id + LEFT JOIN (SELECT rtma.region_id, + GROUP_CONCAT(IFNULL(rtma.avg_price_relative,"") ORDER BY rtma.month SEPARATOR ', ') AS avg_price_relative + FROM regions_trivago_monthly_avg AS rtma + GROUP BY rtma.region_id) rtma + ON regions.id = rtma.region_id WHERE regions_byt.travelstyle = 1 AND regions.id = ?`, [id] ); for (k = 0; k < region.length; k++) { - //region[k].temperature_mean = climateArrayFormatting(region[k].temperature_mean); - //region[k].temperature_mean_min = climateArrayFormatting(region[k].temperature_mean_min); - region[k].temperature_mean_max = climateArrayFormatting(region[k].temperature_mean_max); - region[k].precipitation = climateArrayFormatting(region[k].precipitation); - region[k].rain_days = climateArrayFormatting(region[k].rain_days); - region[k].sun_hours = climateArrayFormatting(region[k].sun_hours); - //region[k].humidity = climateArrayFormatting(region[k].humidity); + region[k].avg_price_relative = arrayFormatting(region[k].avg_price_relative); + //region[k].temperature_mean = arrayFormatting(region[k].temperature_mean); + //region[k].temperature_mean_min = arrayFormatting(region[k].temperature_mean_min); + region[k].temperature_mean_max = arrayFormatting(region[k].temperature_mean_max); + region[k].precipitation = arrayFormatting(region[k].precipitation); + region[k].rain_days = arrayFormatting(region[k].rain_days); + region[k].sun_hours = arrayFormatting(region[k].sun_hours); + //region[k].humidity = arrayFormatting(region[k].humidity); } const emptyArr = Array.from({ length: 12 }, () => null) if (region.temperature_mean_max === null) region.temperature_mean_max = emptyArr diff --git a/backend/models/getRegions2.js b/backend/models/getRegions2.js index 418789f..7edcf05 100644 --- a/backend/models/getRegions2.js +++ b/backend/models/getRegions2.js @@ -1,4 +1,4 @@ -const climateArrayFormatting = require("./../util/climateArrayFormatting.js"); +const arrayFormatting = require("../util/databaseArrayFormatting.js"); const { takeRightWhile } = require("lodash"); module.exports = async (dbConn) => { @@ -12,6 +12,7 @@ module.exports = async (dbConn) => { rcma.rain_days AS rain_days, rcma.sun_hours AS sun_hours, regions_byt.average_per_day_costs AS average_per_day_costs, + rtma.avg_price_relative AS avg_price_relative, regions_byt.accommodation_costs AS accommodation_costs, regions_byt.food_costs AS food_costs, regions_byt.water_costs AS water_costs, @@ -31,20 +32,26 @@ module.exports = async (dbConn) => { FROM region_climate_monthly_avg AS rcma GROUP BY rcma.region_id) rcma ON rcma.region_id = regions.id LEFT JOIN regions_byt ON regions.id = regions_byt.region_id + LEFT JOIN (SELECT rtma.region_id, + GROUP_CONCAT(IFNULL(rtma.avg_price_relative,"") ORDER BY rtma.month SEPARATOR ', ') AS avg_price_relative + FROM regions_trivago_monthly_avg AS rtma + GROUP BY rtma.region_id) rtma + ON regions.id = rtma.region_id WHERE regions_byt.travelstyle = 1` ); for (k = 0; k < regions.length; k++) { - //regions[k].temperature_mean = climateArrayFormatting(regions[k].temperature_mean); - //regions[k].temperature_mean_min = climateArrayFormatting(regions[k].temperature_mean_min); - regions[k].temperature_mean_max = climateArrayFormatting(regions[k].temperature_mean_max); - regions[k].precipitation = climateArrayFormatting(regions[k].precipitation); - regions[k].rain_days = climateArrayFormatting(regions[k].rain_days); - regions[k].sun_hours = climateArrayFormatting(regions[k].sun_hours); - //regions[k].humidity = climateArrayFormatting(regions[k].humidity); + regions[k].avg_price_relative = arrayFormatting(regions[k].avg_price_relative); + //regions[k].temperature_mean = arrayFormatting(regions[k].temperature_mean); + //regions[k].temperature_mean_min = arrayFormatting(regions[k].temperature_mean_min); + regions[k].temperature_mean_max = arrayFormatting(regions[k].temperature_mean_max); + regions[k].precipitation = arrayFormatting(regions[k].precipitation); + regions[k].rain_days = arrayFormatting(regions[k].rain_days); + regions[k].sun_hours = arrayFormatting(regions[k].sun_hours); + //regions[k].humidity = arrayFormatting(regions[k].humidity); } - console.log(regions.filter(region => region.rain_days === null)) + //console.log(regions.filter(region => region.rain_days === null)) return regions.map(region => { const emptyArr = Array.from({ length: 12 }, () => null) if (region.temperature_mean_max === null) region.temperature_mean_max = emptyArr diff --git a/backend/util/climateArrayFormatting.js b/backend/util/databaseArrayFormatting.js similarity index 100% rename from backend/util/climateArrayFormatting.js rename to backend/util/databaseArrayFormatting.js