travopti/backend/models/getRegionById.js

50 lines
2.8 KiB
JavaScript

const climateArrayFormatting = require("./../util/climateArrayFormatting.js")
module.exports = async (dbConn, id) => {
const region = await dbConn.query(
`SELECT regions.id AS region_id,
regions.region AS name,
countries.country AS country,
regions.description AS description,
rcma.temperature_mean_max,
rcma.precipitation AS precipitation,
rcma.raindays AS rain_days,
rcma.sunshine AS sun_hours,
regions_byt.average_per_day AS average_per_day_costs,
regions_byt.accomodation AS accommodation_costs,
regions_byt.food AS food_costs,
regions_byt.water AS water_costs,
regions_byt.local_transportation AS local_transportation_costs,
regions_byt.entertainment AS entertainment_costs,
regions_byt.alcohol AS alcohol_costs
FROM regions
LEFT JOIN countries ON regions.country_id = countries.id
LEFT JOIN (SELECT rcma.region_id,
GROUP_CONCAT(IFNULL(rcma.temperature_mean,"") ORDER BY rcma.month SEPARATOR ', ') AS temperature_mean,
GROUP_CONCAT(IFNULL(rcma.temperature_mean_min, "") ORDER BY rcma.month SEPARATOR ', ') AS temperature_mean_min,
GROUP_CONCAT(IFNULL(rcma.temperature_mean_max, "") ORDER BY rcma.month SEPARATOR ', ') AS temperature_mean_max,
GROUP_CONCAT(IFNULL(rcma.percipitation, "") ORDER BY rcma.month SEPARATOR ', ') AS precipitation,
GROUP_CONCAT(IFNULL(rcma.raindays, "") ORDER BY rcma.month SEPARATOR ', ') AS raindays,
GROUP_CONCAT(IFNULL(rcma.sunshine, "") ORDER BY rcma.month SEPARATOR ', ') AS sunshine,
GROUP_CONCAT(IFNULL(rcma.humidity, "") ORDER BY rcma.month SEPARATOR ', ') AS humidity
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
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);
}
return region;
};