1 line
4.0 KiB
JavaScript
1 line
4.0 KiB
JavaScript
"use strict";(()=>{var e={};e.id=886,e.ids=[886],e.modules={72934:e=>{e.exports=require("next/dist/client/components/action-async-storage.external.js")},54580:e=>{e.exports=require("next/dist/client/components/request-async-storage.external.js")},45869:e=>{e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},20399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},30517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},27790:e=>{e.exports=require("assert")},78893:e=>{e.exports=require("buffer")},84770:e=>{e.exports=require("crypto")},17702:e=>{e.exports=require("events")},32615:e=>{e.exports=require("http")},35240:e=>{e.exports=require("https")},86624:e=>{e.exports=require("querystring")},17360:e=>{e.exports=require("url")},21764:e=>{e.exports=require("util")},71568:e=>{e.exports=require("zlib")},10431:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>h,patchFetch:()=>q,requestAsyncStorage:()=>x,routeModule:()=>m,serverHooks:()=>w,staticGenerationAsyncStorage:()=>f});var s={};r.r(s),r.d(s,{POST:()=>c});var a=r(49303),i=r(88716),n=r(60670),o=r(87070),u=r(83493),p=r(71615),d=r(75571),l=r(90455);async function c(e){try{let t=await e.json(),r=t.itemId,s=Number(t.quantity);if(!r||!Number.isFinite(s))return o.NextResponse.json({error:"itemId and quantity are required."},{status:400});let a=await (0,d.getServerSession)(l.L),i=(0,p.cookies)(),n=i.get("sf_session")?.value,c=!n;if(!n&&!a?.user?.email)return o.NextResponse.json({error:"Missing cart session."},{status:400});let m=await u._.cartItem.findUnique({where:{id:r},include:{cart:!0}});if(!m)return o.NextResponse.json({error:"Item not found."},{status:404});if(a?.user?.email){let e=await u._.user.findUnique({where:{email:a.user.email}});if(!e)return o.NextResponse.json({error:"User not found."},{status:404});if(m.cart.userId!==e.id&&m.cart.sessionId!==n)return o.NextResponse.json({error:"Item not found."},{status:404});n||(n=crypto.randomUUID(),await u._.cart.update({where:{id:m.cartId},data:{sessionId:n}}))}else if(m.cart.sessionId!==n)return o.NextResponse.json({error:"Item not found."},{status:404});if(s<=0){await u._.cartItem.delete({where:{id:r}});let e=o.NextResponse.json({deleted:!0});return c&&n&&e.cookies.set("sf_session",n,{httpOnly:!0,sameSite:"lax",path:"/"}),e}let x=await u._.cartItem.update({where:{id:r},data:{quantity:s}}),f=o.NextResponse.json({item:x});return c&&n&&f.cookies.set("sf_session",n,{httpOnly:!0,sameSite:"lax",path:"/"}),f}catch(e){return o.NextResponse.json({error:e?.message||"Failed to update cart item."},{status:500})}}let m=new a.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/cart/update/route",pathname:"/api/cart/update",filename:"route",bundlePath:"app/api/cart/update/route"},resolvedPagePath:"/root/ShiftedOffRoad/app/api/cart/update/route.ts",nextConfigOutput:"",userland:s}),{requestAsyncStorage:x,staticGenerationAsyncStorage:f,serverHooks:w}=m,h="/api/cart/update/route";function q(){return(0,n.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:f})}},90455:(e,t,r)=>{r.d(t,{L:()=>u});var s=r(13539),a=r(53797),i=r(42023),n=r.n(i),o=r(83493);let u={adapter:(0,s.N)(o._),session:{strategy:"jwt"},pages:{signIn:"/login"},callbacks:{jwt:async({token:e,user:t})=>(t&&(e.id=t.id),e.id||(e.id=e.sub??""),e),session:async({session:e,token:t})=>(e.user&&(e.user.id=t.id||""),e)},providers:[(0,a.Z)({name:"Credentials",credentials:{email:{label:"Email",type:"email"},password:{label:"Password",type:"password"}},async authorize(e){let t=e?.email?.toLowerCase().trim(),r=e?.password;if(!t||!r)return null;let s=await o._.user.findUnique({where:{email:t}});return s&&s.passwordHash&&await n().compare(r,s.passwordHash)?{id:s.id,name:s.name,email:s.email}:null}})]}},83493:(e,t,r)=>{r.d(t,{_:()=>a});let s=require("@prisma/client"),a=globalThis.prisma??new s.PrismaClient({log:["warn","error"]})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[9276,5972,2023,9637],()=>r(10431));module.exports=s})(); |