Optimised imoprt earthquakes
This commit is contained in:
parent
8a48857ac0
commit
a8fe047019
@ -42,20 +42,19 @@ export async function POST() {
|
|||||||
|
|
||||||
const failedImports: { row: CsvRow; reason: string }[] = [];
|
const failedImports: { row: CsvRow; reason: string }[] = [];
|
||||||
|
|
||||||
// Fetch all observatories once to avoid repeated queries
|
// Fetch all observatories and users once
|
||||||
const observatories = await prisma.observatory.findMany({
|
const observatories = await prisma.observatory.findMany({
|
||||||
select: { id: true, latitude: true, longitude: true },
|
select: { id: true, latitude: true, longitude: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
const earthquakes = await Promise.all(
|
|
||||||
records.map(async (row) => {
|
|
||||||
const creators = await prisma.user.findMany({
|
const creators = await prisma.user.findMany({
|
||||||
where: { role: { in: ["SCIENTIST", "ADMIN"] } },
|
where: { role: { in: ["SCIENTIST", "ADMIN"] } },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const earthquakes = records.map((row) => {
|
||||||
const randomCreator = creators.length > 0 ? creators[getRandomNumber(0, creators.length - 1)] : null;
|
const randomCreator = creators.length > 0 ? creators[getRandomNumber(0, creators.length - 1)] : null;
|
||||||
|
|
||||||
if (!randomCreator) {
|
if (!randomCreator) {
|
||||||
failedImports.push({ row, reason: `RandomCreator: ${randomCreator}` });
|
failedImports.push({ row, reason: `No creator found` });
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,8 +96,7 @@ export async function POST() {
|
|||||||
creatorId: randomCreator.id,
|
creatorId: randomCreator.id,
|
||||||
observatories: { connect: nearbyObservatories },
|
observatories: { connect: nearbyObservatories },
|
||||||
};
|
};
|
||||||
})
|
});
|
||||||
);
|
|
||||||
|
|
||||||
const validEarthquakes = earthquakes.filter(
|
const validEarthquakes = earthquakes.filter(
|
||||||
(earthquake): earthquake is NonNullable<typeof earthquake> => earthquake !== null
|
(earthquake): earthquake is NonNullable<typeof earthquake> => earthquake !== null
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user