feat: extract shop from mp/shop — initial libreshop/shop
Some checks failed
Build and publish / build (push) Failing after 19s
Some checks failed
Build and publish / build (push) Failing after 19s
Source moved verbatim from mp/shop/ on 2026-04-29; mp was the first concrete adapter consuming the libreshop toolkit. Builds and publishes git.librete.ch/libreshop/shop on every main / v* push via the standard .gitea/workflows/build.yml shared across libreshop components.
This commit is contained in:
15
server/api/product/[slug].get.ts
Normal file
15
server/api/product/[slug].get.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { fetchCms } from "~/server/utils/cmsApi";
|
||||
|
||||
/**
|
||||
* Get product by slug - optimized for SSR.
|
||||
* This route fetches directly from CMS and returns the first matching product.
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
const slug = getRouterParam(event, "slug");
|
||||
if (!slug) {
|
||||
throw createError({ statusCode: 400, statusMessage: "Missing slug parameter" });
|
||||
}
|
||||
|
||||
const response = await fetchCms<{ data: unknown[] }>(`/products?filters[slug]=${slug}`);
|
||||
return response.data?.[0] ?? null;
|
||||
});
|
||||
Reference in New Issue
Block a user