![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/lavocat.ca/private_html/.next/server/pages/api/admin/ |
"use strict";(()=>{var e={};e.id=9050,e.ids=[9050],e.modules={4722:e=>{e.exports=require("next-auth/react")},8732:e=>{e.exports=require("react/jsx-runtime")},16382:e=>{e.exports=require("next-auth/providers/credentials")},22326:e=>{e.exports=require("react-dom")},26703:(e,t,r)=>{r.r(t),r.d(t,{config:()=>w,default:()=>f,routeModule:()=>v});var s={};r.r(s),r.d(s,{default:()=>d});var i=r(33480),a=r(8667),n=r(86435),u=r(65542),o=r(76760),c=r(41822),l=r(16062);async function d(e,t){let r=await (0,u.getServerSession)(e,t,c.N);if(!r||!(0,l.p_)(r))return t.status(401).json({message:"Unauthorized"});switch(e.method){case"GET":return p(e,t);case"POST":return g(e,t);case"PUT":return m(e,t);case"DELETE":return b(e,t);default:return t.status(405).json({message:"Method not allowed"})}}async function p(e,t){try{let{page:r="1",limit:s="10",search:i="",status:a="all",source:n="all",language:u="all"}=e.query,c=parseInt(r),l=parseInt(s),d=(c-1)*l,p={};i&&(p.email={contains:i,mode:"insensitive"}),"active"===a?p.isActive=!0:"inactive"===a&&(p.isActive=!1),"all"!==n&&(p.source=n),"all"!==u&&(p.language=u);let[g,m]=await Promise.all([o.z.newsletterSubscription.findMany({where:p,orderBy:{createdAt:"desc"},skip:d,take:l}),o.z.newsletterSubscription.count({where:p})]),b=await o.z.newsletterSubscription.groupBy({by:["isActive","language","source"],_count:!0}),f={total:m,active:b.filter(e=>e.isActive).reduce((e,t)=>e+t._count,0),inactive:b.filter(e=>!e.isActive).reduce((e,t)=>e+t._count,0),byLanguage:b.reduce((e,t)=>(e[t.language]=(e[t.language]||0)+t._count,e),{}),bySource:b.reduce((e,t)=>(e[t.source]=(e[t.source]||0)+t._count,e),{})};t.status(200).json({subscriptions:g,pagination:{page:c,limit:l,total:m,pages:Math.ceil(m/l)},stats:f})}catch(e){console.error("Error fetching newsletter subscriptions:",e),t.status(500).json({message:"Internal server error"})}}async function g(e,t){try{let{email:r,language:s="en",source:i="admin",tags:a=[]}=e.body;if(!r||!r.includes("@"))return t.status(400).json({message:"Valid email address is required"});if(await o.z.newsletterSubscription.findUnique({where:{email:r}}))return t.status(409).json({message:"Email already exists"});let n=await o.z.newsletterSubscription.create({data:{email:r,language:s,source:i,tags:JSON.stringify(a),isActive:!0}});t.status(201).json(n)}catch(e){console.error("Error creating newsletter subscription:",e),t.status(500).json({message:"Internal server error"})}}async function m(e,t){try{let{id:r,isActive:s,language:i,tags:a}=e.body;if(!r)return t.status(400).json({message:"Subscription ID is required"});let n={};"boolean"==typeof s&&(n.isActive=s,s?n.unsubscribedAt=null:n.unsubscribedAt=new Date),i&&(n.language=i),a&&(n.tags=JSON.stringify(a));let u=await o.z.newsletterSubscription.update({where:{id:r},data:n});t.status(200).json(u)}catch(e){console.error("Error updating newsletter subscription:",e),t.status(500).json({message:"Internal server error"})}}async function b(e,t){try{let{id:r}=e.body;if(!r)return t.status(400).json({message:"Subscription ID is required"});await o.z.newsletterSubscription.delete({where:{id:r}}),t.status(200).json({message:"Subscription deleted successfully"})}catch(e){console.error("Error deleting newsletter subscription:",e),t.status(500).json({message:"Internal server error"})}}let f=(0,n.M)(s,"default"),w=(0,n.M)(s,"config"),v=new i.PagesAPIRouteModule({definition:{kind:a.A.PAGES_API,page:"/api/admin/newsletter",pathname:"/api/admin/newsletter",bundlePath:"",filename:""},userland:s})},27910:e=>{e.exports=require("stream")},29021:e=>{e.exports=require("fs")},40361:e=>{e.exports=require("next/dist/compiled/next-server/pages.runtime.prod.js")},65542:e=>{e.exports=require("next-auth")},74075:e=>{e.exports=require("zlib")},74729:e=>{e.exports=require("bcryptjs")},75600:e=>{e.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},82015:e=>{e.exports=require("react")},96330:e=>{e.exports=require("@prisma/client")}};var t=require("../../../webpack-api-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[7332,6062],()=>r(26703));module.exports=s})();