![]() 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/backups/lavocat.quebec/backup-20250730-021618/src/pages/api/admin/ |
import { NextApiRequest, NextApiResponse } from 'next';
import { getServerSession } from 'next-auth/next';
import { authOptions } from '@/lib/auth';
import { PrismaClient } from '@prisma/client';
import { isEffectiveAdmin } from '@/lib/auth-utils';
const prisma = new PrismaClient();
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
try {
const session = await getServerSession(req, res, authOptions);
if (!session || !isEffectiveAdmin(session)) {
return res.status(403).json({ error: 'Access denied' });
}
if (req.method === 'GET') {
const firms = await prisma.lawFirm.findMany({
select: {
id: true,
name: true,
shortName: true,
address: true,
city: true,
province: true,
specializations: true,
lawyers: {
select: {
id: true,
name: true,
role: true
}
}
},
orderBy: {
name: 'asc'
}
});
return res.status(200).json({ firms });
}
res.setHeader('Allow', ['GET']);
return res.status(405).json({ error: 'Method not allowed' });
} catch (error) {
console.error('Law firms API error:', error);
return res.status(500).json({ error: 'Internal server error' });
} finally {
await prisma.$disconnect();
}
}