remove websocket add polling

This commit is contained in:
DenAntonov
2025-06-14 13:36:06 +03:00
parent bde67dc7c3
commit 580651094f
5 changed files with 894 additions and 482 deletions

View File

@@ -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
};