1 line
6.3 KiB
JavaScript
1 line
6.3 KiB
JavaScript
"use strict";(()=>{var e={};e.id=7699,e.ids=[7699],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11723:e=>{e.exports=require("querystring")},12412:e=>{e.exports=require("assert")},28354:e=>{e.exports=require("util")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50796:(e,r,s)=>{s.r(r),s.d(r,{patchFetch:()=>U,routeModule:()=>f,serverHooks:()=>y,workAsyncStorage:()=>x,workUnitAsyncStorage:()=>w});var t={};s.r(t),s.d(t,{DELETE:()=>h,GET:()=>c,PUT:()=>g});var i=s(96559),o=s(48088),n=s(37719),a=s(32190),d=s(19854),u=s(26690),l=s(79464),p=s(22039);async function m(e){let r=await (0,d.getServerSession)(u.N);return r?.user?.id?{authorized:!0,userId:r.user.id}:(console.error("Unauthorized access attempt:",{url:e.url,method:e.method,headers:Object.fromEntries(e.headers)}),{authorized:!1,userId:null})}async function c(e,r){let s=await r.params;try{let{authorized:r,userId:t}=await m(e);if(!r||!t)return a.NextResponse.json({error:"Unauthorized"},{status:401});let{missionId:i}=s;if(!i)return a.NextResponse.json({error:"Mission ID is required"},{status:400});let o=await l.z.mission.findFirst({where:{id:i,OR:[{creatorId:t},{missionUsers:{some:{userId:t}}}]},include:{creator:{select:{id:!0,email:!0}},missionUsers:{select:{id:!0,role:!0,user:{select:{id:!0,email:!0}}}},attachments:{select:{id:!0,filename:!0,filePath:!0,fileType:!0,fileSize:!0,createdAt:!0},orderBy:{createdAt:"desc"}}}});if(!o)return a.NextResponse.json({error:"Mission not found or access denied"},{status:404});let n={...o,logoUrl:o.logo?(0,p._F)(o.logo):null,logo:o.logo,attachments:o.attachments.map(e=>({...e,publicUrl:(0,p._F)(e.filePath)}))};return console.log("Mission data with URLs:",{missionId:o.id,logoPath:o.logo,logoUrl:n.logoUrl,attachmentCount:o.attachments.length}),a.NextResponse.json(n)}catch(e){return console.error("Error retrieving mission:",{error:e,missionId:s.missionId,errorType:e instanceof Error?e.constructor.name:typeof e,message:e instanceof Error?e.message:String(e)}),a.NextResponse.json({error:"Internal server error",details:e instanceof Error?e.message:String(e)},{status:500})}}async function g(e,r){let s=await r.params;try{let{authorized:r,userId:t}=await m(e);if(!r||!t)return a.NextResponse.json({error:"Unauthorized"},{status:401});let{missionId:i}=s;if(!i)return a.NextResponse.json({error:"Mission ID is required"},{status:400});if(!await l.z.mission.findFirst({where:{id:i,OR:[{creatorId:t},{missionUsers:{some:{userId:t,role:{in:["gardien-temps","gardien-parole"]}}}}]}}))return a.NextResponse.json({error:"Mission not found or not authorized to update"},{status:404});let{name:o,logo:n,oddScope:d,niveau:u,intention:p,missionType:c,donneurDOrdre:g,projection:h,services:f,participation:x,profils:w,guardians:y,volunteers:U}=await e.json(),v=n;if(n&&"string"==typeof n)try{if(n.startsWith("http")){let e=new URL(n);v=e.pathname.startsWith("/")?e.pathname.substring(1):e.pathname}else n.startsWith("missions/")||(v=`missions/${n}`)}catch(e){console.error("Error processing logo URL:",{error:e,logo:n,missionId:i})}let j=await l.z.mission.update({where:{id:i},data:{name:o,logo:v,oddScope:d||void 0,niveau:u,intention:p,missionType:c,donneurDOrdre:g,projection:h,services:f||void 0,participation:x,profils:w||void 0}});if(y){(await l.z.missionUser.findMany({where:{missionId:i,role:{in:["gardien-temps","gardien-parole","gardien-memoire"]}}})).length>0&&await l.z.missionUser.deleteMany({where:{missionId:i,role:{in:["gardien-temps","gardien-parole","gardien-memoire"]}}});let e=["gardien-temps","gardien-parole","gardien-memoire"],r=Object.entries(y).filter(([r,s])=>e.includes(r)&&s).map(([e,r])=>({role:e,userId:r,missionId:i}));r.length>0&&await l.z.missionUser.createMany({data:r})}if(U&&Array.isArray(U)&&((await l.z.missionUser.findMany({where:{missionId:i,role:"volontaire"}})).length>0&&await l.z.missionUser.deleteMany({where:{missionId:i,role:"volontaire"}}),U.length>0)){let e=U.map(e=>({role:"volontaire",userId:e,missionId:i}));await l.z.missionUser.createMany({data:e})}return a.NextResponse.json({success:!0,mission:{id:j.id,name:j.name,updatedAt:j.updatedAt}})}catch(e){return console.error("Error updating mission:",e),a.NextResponse.json({error:"Internal server error",details:e instanceof Error?e.message:String(e)},{status:500})}}async function h(e,r){let s=await r.params;try{let e=await (0,d.getServerSession)(u.N);if(!e?.user)return a.NextResponse.json({error:"Unauthorized"},{status:401});let r=await l.z.mission.findUnique({where:{id:s.missionId},include:{missionUsers:{include:{user:!0}}}});if(!r)return a.NextResponse.json({error:"Mission not found"},{status:404});let t=r.creatorId===e.user.id,i=Array.isArray(e.user.role)?e.user.role:[],o=i.includes("admin")||i.includes("ADMIN");if(!t&&!o)return a.NextResponse.json({error:"Forbidden"},{status:403});if(r.logo)try{await (0,p.fU)(s.missionId,r.logo)}catch(e){console.error("Error deleting mission logo:",e)}return await l.z.mission.delete({where:{id:s.missionId}}),a.NextResponse.json({success:!0})}catch(e){return console.error("Error deleting mission:",e),a.NextResponse.json({error:"Failed to delete mission"},{status:500})}}let f=new i.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/missions/[missionId]/route",pathname:"/api/missions/[missionId]",filename:"route",bundlePath:"app/api/missions/[missionId]/route"},resolvedPagePath:"/Users/alma/Documents/NeahNew/app/api/missions/[missionId]/route.ts",nextConfigOutput:"",userland:t}),{workAsyncStorage:x,workUnitAsyncStorage:w,serverHooks:y}=f;function U(){return(0,n.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:w})}},55511:e=>{e.exports=require("crypto")},55591:e=>{e.exports=require("https")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74075:e=>{e.exports=require("zlib")},79428:e=>{e.exports=require("buffer")},79551:e=>{e.exports=require("url")},81630:e=>{e.exports=require("http")},91043:e=>{e.exports=require("@aws-sdk/client-s3")},94735:e=>{e.exports=require("events")},96330:e=>{e.exports=require("@prisma/client")}};var r=require("../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[4243,5419,580,762,6300],()=>s(50796));module.exports=t})(); |