remove websocket add polling
This commit is contained in:
@@ -3,12 +3,30 @@ const { createClient } = require('@supabase/supabase-js');
|
||||
const { getSupabaseUrl, getSupabaseKey, getSupabaseServiceKey } = require('./get-constants');
|
||||
|
||||
let supabase = null;
|
||||
let initializationPromise = null;
|
||||
|
||||
async function initSupabaseClient() {
|
||||
const supabaseUrl = await getSupabaseUrl();
|
||||
const supabaseAnonKey = await getSupabaseKey();
|
||||
const supabaseServiceRoleKey = await getSupabaseServiceKey();
|
||||
supabase = createClient(supabaseUrl, supabaseServiceRoleKey);
|
||||
console.log('🔄 [Supabase Client] Начинаем инициализацию...');
|
||||
|
||||
try {
|
||||
console.log('🔄 [Supabase Client] Получаем конфигурацию...');
|
||||
const supabaseUrl = await getSupabaseUrl();
|
||||
const supabaseAnonKey = await getSupabaseKey();
|
||||
const supabaseServiceRoleKey = await getSupabaseServiceKey();
|
||||
|
||||
|
||||
if (!supabaseUrl || !supabaseServiceRoleKey) {
|
||||
throw new Error('Missing required Supabase configuration');
|
||||
}
|
||||
|
||||
supabase = createClient(supabaseUrl, supabaseServiceRoleKey);
|
||||
|
||||
return supabase;
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ [Supabase Client] Ошибка инициализации:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
function getSupabaseClient() {
|
||||
@@ -20,20 +38,49 @@ function getSupabaseClient() {
|
||||
|
||||
// POST /refresh-supabase-client
|
||||
router.post('/refresh-supabase-client', async (req, res) => {
|
||||
try {
|
||||
try {
|
||||
await initSupabaseClient();
|
||||
res.json({ success: true, message: 'Supabase client refreshed' });
|
||||
} catch (error) {
|
||||
} catch (error) {
|
||||
console.error('❌ [Supabase Client] Ошибка обновления:', error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// GET /supabase-client-status
|
||||
router.get('/supabase-client-status', (req, res) => {
|
||||
console.log('🔍 [Supabase Client] Проверяем статус клиента...');
|
||||
|
||||
const isInitialized = !!supabase;
|
||||
|
||||
res.json({
|
||||
initialized: isInitialized,
|
||||
clientExists: !!supabase,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
});
|
||||
|
||||
// Инициализация клиента при старте
|
||||
(async () => {
|
||||
initializationPromise = (async () => {
|
||||
try {
|
||||
await initSupabaseClient();
|
||||
} catch (error) {
|
||||
console.error('❌ [Supabase Client] Ошибка инициализации при старте:', error);
|
||||
// Планируем повторную попытку через 5 секунд
|
||||
setTimeout(async () => {
|
||||
try {
|
||||
await initSupabaseClient();
|
||||
} catch (retryError) {
|
||||
console.error('❌ [Supabase Client] Повторная инициализация неудачна:', retryError);
|
||||
}
|
||||
}, 5000);
|
||||
}
|
||||
})();
|
||||
|
||||
module.exports = {
|
||||
getSupabaseClient,
|
||||
supabaseRouter: router
|
||||
initSupabaseClient,
|
||||
supabaseRouter: router,
|
||||
// Экспортируем промис инициализации для возможности ожидания
|
||||
initializationPromise
|
||||
};
|
||||
Reference in New Issue
Block a user