Untitled
unknown
plain_text
a year ago
1.3 kB
10
Indexable
import { db } from '$db';
import { listingsTable, cpuModelsTable, suppliersTable } from '$db/schema';
import { eq, lte } from 'drizzle-orm';
import type { PageServerLoad } from './$types';
import { error } from '@sveltejs/kit';
export const load: PageServerLoad = async ({ url }) => {
try {
const budget = Number(url.searchParams.get('budget')) || 800;
const listings = await db
.select({
name: cpuModelsTable.name,
price: listingsTable.price,
shippingCost: listingsTable.shippingCost,
supplier: suppliersTable.name,
url: listingsTable.url
})
.from(listingsTable)
.innerJoin(cpuModelsTable, eq(listingsTable.cpuModelId, cpuModelsTable.id))
.innerJoin(suppliersTable, eq(listingsTable.supplierId, suppliersTable.id))
.where(lte(listingsTable.price, budget * 100)) // Convert budget to cents
.orderBy(listingsTable.price);
return {
listings: listings.map((listing) => ({
...listing,
price: listing.price / 100, // Convert price back to euros
shippingCost: listing.shippingCost / 100 // Convert shipping cost back to euros
}))
};
} catch (err) {
console.error('Error in load function:', err);
throw error(500, { message: 'Internal server error', error: err });
}
};
Editor is loading...
Leave a Comment