91 lines
4.6 KiB
JavaScript
91 lines
4.6 KiB
JavaScript
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
|
|
JOIN countries ON regions.country_id = countries.id
|
|
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.precipitation, "") 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
|
|
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++) {
|
|
// if (region[k].temperature_mean !== null) {
|
|
// const temperature_mean = region[k].temperature_mean
|
|
// region[k].temperature_mean = temperature_mean.split(",");
|
|
// for (i = 0; i < region[k].temperature_mean.length; i++) {
|
|
// region[k].temperature_mean[i] = parseFloat(region[k].temperature_mean[i])
|
|
// }
|
|
// }
|
|
// if (region[k].temperature_mean_min !== null) {
|
|
// const temperature_mean_min = region[k].temperature_mean_min
|
|
// region[k].temperature_mean_min = temperature_mean_min.split(",");
|
|
// for (i = 0; i < region[k].temperature_mean_min.length; i++) {
|
|
// region[k].temperature_mean_min[i] = parseFloat(region[k].temperature_mean_min[i])
|
|
// }
|
|
// }
|
|
if (region[k].temperature_mean_max !== null) {
|
|
const temperature_mean_max = region[k].temperature_mean_max
|
|
region[k].temperature_mean_max = temperature_mean_max.split(",");
|
|
for (i = 0; i < region[k].temperature_mean_max.length; i++) {
|
|
region[k].temperature_mean_max[i] = parseFloat(region[k].temperature_mean_max[i])
|
|
}
|
|
|
|
}
|
|
if (region[k].precipitation !== null) {
|
|
const precipitation = region[k].precipitation
|
|
region[k].precipitation = precipitation.split(",");
|
|
for (i = 0; i < region[k].precipitation.length; i++) {
|
|
region[k].precipitation[i] = parseFloat(region[k].precipitation[i])
|
|
}
|
|
}
|
|
if (region[k].rain_days !== null) {
|
|
const rain_days = region[k].rain_days
|
|
region[k].rain_days = rain_days.split(",");
|
|
for (i = 0; i < region[k].rain_days.length; i++) {
|
|
region[k].rain_days[i] = parseFloat(region[k].rain_days[i])
|
|
}
|
|
}
|
|
if (region[k].sun_hours !== null) {
|
|
const sun_hours = region[k].sun_hours
|
|
region[k].sun_hours = sun_hours.split(",");
|
|
for (i = 0; i < region[k].sun_hours.length; i++) {
|
|
region[k].sun_hours[i] = parseFloat(region[k].sun_hours[i])
|
|
}
|
|
}
|
|
// if (region[k].humidity !== null) {
|
|
// const humidity = region[k].humidity
|
|
// region[k].humidity = humidity.split(",");
|
|
// for (i = 0; i < region[k].humidity.length; i++) {
|
|
// region[k].humidity[i] = parseFloat(region[k].humidity[i])
|
|
// }
|
|
// }
|
|
}
|
|
return region;
|
|
};
|
|
|