All files / server/api/products index.get.ts

100% Statements 12/12
100% Branches 5/5
100% Functions 0/0
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 141x   1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import {enrichProductsWithDiscounts} from "#server/utils/discounts";
 
export default defineEventHandler(async event => {
    const db = database(event);
    await ready(db);
    const query = getQuery(event);
    const {results} = await db.prepare(`${productSelect} WHERE p.active=1 ORDER BY p.featured DESC,p.featured_position,p.id`).all();
    let products = await mapProductsWithRelations(db, results);
    if (query.category) products = products.filter(product => product.categories.some(category => category.slug === String(query.category)));
    if (query.universe) products = products.filter(product => product.universeIds.includes(Number(query.universe)));
    const discountMap = await enrichProductsWithDiscounts(db, products);
    return products.map(p => ({...p, discountedPriceCents: discountMap.get(p.id) ?? null}))
})