import { authenticate, defineMiddlewares } from "@medusajs/framework/http" // GET /store/products descarta en silencio la relacion `categories` // aunque `/admin/products` si la expone -- confirmado en vivo en la // auditoria de Fase 5 (ver docs/decisiones/0004-evaluacion-stack-multi-categoria.md). // Este es el patron oficial de Medusa v2 para ampliar los campos // permitidos de una ruta core restringida (middleware global sobre // req.allowed), no un query-config custom: // https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links export default defineMiddlewares({ routes: [ // ReseƱas: crear una y ver las propias exige cliente autenticado -- // la verificacion de compra usa auth_context.actor_id (ver // src/api/store/reviews/route.ts). GET /store/reviews y /summary // siguen publicos. { matcher: "/store/reviews", method: ["POST"], middlewares: [authenticate("customer", ["session", "bearer"])], }, { matcher: "/store/reviews/me", method: ["GET"], middlewares: [authenticate("customer", ["session", "bearer"])], }, { matcher: "/store/products", middlewares: [ (req, res, next) => { ;(req.allowed ??= []).push("categories") next() }, ], }, ], })