48 lines
1023 B
TypeScript
48 lines
1023 B
TypeScript
import moment from "moment";
|
|
import { prisma } from "./prisma.js";
|
|
|
|
export async function getKlimafaktorenServer(plz: string, startdatum: Date, enddatum: Date) {
|
|
const start = moment(startdatum);
|
|
const end = moment(enddatum);
|
|
|
|
if (start.isSameOrAfter(end)) {
|
|
return []
|
|
}
|
|
|
|
const intervals = [];
|
|
|
|
let currentDate = start.clone();
|
|
while (currentDate.isSameOrBefore(end)) {
|
|
let copy = currentDate.clone();
|
|
intervals.push(copy);
|
|
currentDate.add(1, "year");
|
|
}
|
|
|
|
let klimafaktoren = await prisma.klimafaktoren.findMany({
|
|
where: {
|
|
plz,
|
|
month: intervals[0].month(),
|
|
OR: intervals.map((date) => {
|
|
return {
|
|
year: date.year(),
|
|
};
|
|
}),
|
|
},
|
|
});
|
|
|
|
if (!klimafaktoren) {
|
|
return []
|
|
}
|
|
|
|
// NOTE: Sollten wir hier lieber den Output padden und trotzdem die gefundenen zurückgeben?
|
|
if (klimafaktoren.length !== intervals.length) {
|
|
return []
|
|
}
|
|
|
|
return klimafaktoren.map((klimafaktor) => ({
|
|
month: klimafaktor.month,
|
|
year: klimafaktor.year,
|
|
klimafaktor: klimafaktor.klimafaktor,
|
|
}));
|
|
}
|