import { NextRequest, NextResponse } from 'next/server'; import { createClient } from '@supabase/supabase-js'; export async function POST(request: NextRequest) { try { const body = await request.json(); const { supabaseUrl, supabaseServiceKey, adminEmail } = body; if (!supabaseUrl || !supabaseServiceKey || !adminEmail) { return NextResponse.json( { error: 'Paramètres manquants' }, { status: 400 } ); } const supabaseAdmin = createClient(supabaseUrl, supabaseServiceKey); // 1. Vérifier si l'utilisateur existe dans auth.users console.log('Vérification de l\'utilisateur dans auth.users...'); const { data: users, error: usersError } = await supabaseAdmin.auth.admin.listUsers(); if (usersError) { return NextResponse.json( { error: `Erreur lors de la récupération des utilisateurs: ${usersError.message}` }, { status: 500 } ); } const user = users.users.find(u => u.email === adminEmail); console.log('Utilisateur trouvé dans auth.users:', user ? 'OUI' : 'NON'); if (!user) { return NextResponse.json( { error: 'Utilisateur non trouvé dans auth.users' }, { status: 404 } ); } // 2. Vérifier si l'utilisateur est dans admin_users console.log('Vérification de l\'utilisateur dans admin_users...'); const { data: adminUser, error: adminError } = await supabaseAdmin .from('admin_users') .select('*') .eq('id', user.id) .single(); if (adminError) { console.error('Erreur lors de la vérification admin_users:', adminError); return NextResponse.json( { error: `Erreur lors de la vérification admin_users: ${adminError.message}`, user: { id: user.id, email: user.email, created_at: user.created_at }, inAdminUsers: false }, { status: 500 } ); } console.log('Utilisateur trouvé dans admin_users:', adminUser ? 'OUI' : 'NON'); return NextResponse.json({ success: true, user: { id: user.id, email: user.email, created_at: user.created_at }, adminUser: adminUser, inAdminUsers: !!adminUser }); } catch (error: any) { console.error('Erreur lors du diagnostic:', error); return NextResponse.json( { error: `Erreur interne: ${error.message}` }, { status: 500 } ); } }