diff --git a/src/services/supabase.js b/src/services/supabase.js index 5b51717..2400a40 100644 --- a/src/services/supabase.js +++ b/src/services/supabase.js @@ -12,36 +12,52 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey); // Auth functions export const signUp = async (email, password, username) => { try { - // Регистрируем пользователя - const { data, error } = await supabase.auth.signUp({ + console.log('Начало регистрации:', { email, username }); + + // Регистрация пользователя + const { data: authData, error: authError } = await supabase.auth.signUp({ email, password, options: { - data: { username } + data: { + username: username + } } }); - - if (error) throw error; - - // Создаем профиль в таблице users - const { error: profileError } = await supabase + + if (authError) { + console.error('Ошибка при регистрации пользователя:', authError); + throw authError; + } + + console.log('Пользователь создан в auth:', authData); + + // Создание профиля пользователя + const { data: profileData, error: profileError } = await supabase .from('users') .insert({ - id: data.user.id, - email, - username, + id: authData.user.id, + username: username, + email: email, role: 'user', + is_critic: false, created_at: new Date().toISOString() - }); - + }) + .select() + .single(); + if (profileError) { + console.error('Ошибка при создании профиля:', profileError); // Если не удалось создать профиль, удаляем пользователя - await supabase.auth.admin.deleteUser(data.user.id); + await supabase.auth.admin.deleteUser(authData.user.id); throw profileError; } - - return data; + + console.log('Профиль пользователя создан:', profileData); + + return { user: authData.user, profile: profileData }; } catch (error) { + console.error('Ошибка при регистрации:', error); throw error; } }; @@ -64,12 +80,12 @@ export const getCurrentUser = async () => { }; // User functions -export const getUserProfile = async (userId) => { +export const getUserProfile = async (username) => { const { data, error } = await supabase .from('users') .select('*') - .eq('id', userId) - .maybeSingle(); + .eq('username', username) + .single(); if (error) throw error; return data;