|
|
|
|
|
|
| const SUPABASE_URL = 'https://rootomzbucovwdqsscqd.supabase.co';
|
| const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJvb3RvbXpidWNvdndkcXNzY3FkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzU4OTE4ODMsImV4cCI6MjA1MTQ2Nzg4M30.fYKOe-HPh4WUdvBhEJxakLWCMQBp4E90EDwARk7ucf8';
|
|
|
|
|
| const supabaseClient = supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
|
|
|
| console.log('✅ Supabase Client initialized');
|
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| async function savePageToSupabase(pageName, html, css, components) {
|
| try {
|
| const { data, error } = await supabaseClient
|
| .from('page_builder_pages')
|
| .insert({
|
| name: pageName,
|
| html_content: html,
|
| css_content: css,
|
| components_json: components,
|
| created_at: new Date().toISOString(),
|
| updated_at: new Date().toISOString()
|
| })
|
| .select();
|
|
|
| if (error) throw error;
|
|
|
| console.log('✅ Page saved to Supabase:', data);
|
| return { success: true, data: data, error: null };
|
| } catch (error) {
|
| console.error('❌ Error saving page:', error);
|
| return { success: false, data: null, error: error.message };
|
| }
|
| }
|
|
|
| |
| |
| |
|
|
| async function loadPagesFromSupabase() {
|
| try {
|
| const { data, error } = await supabaseClient
|
| .from('page_builder_pages')
|
| .select('*')
|
| .order('updated_at', { ascending: false });
|
|
|
| if (error) throw error;
|
|
|
| console.log('✅ Pages loaded from Supabase:', data.length);
|
| return { success: true, data: data, error: null };
|
| } catch (error) {
|
| console.error('❌ Error loading pages:', error);
|
| return { success: false, data: [], error: error.message };
|
| }
|
| }
|
|
|
| |
| |
| |
| |
|
|
| async function loadPageFromSupabase(pageId) {
|
| try {
|
| const { data, error } = await supabaseClient
|
| .from('page_builder_pages')
|
| .select('*')
|
| .eq('id', pageId)
|
| .single();
|
|
|
| if (error) throw error;
|
|
|
| console.log('✅ Page loaded from Supabase:', data.name);
|
| return { success: true, data: data, error: null };
|
| } catch (error) {
|
| console.error('❌ Error loading page:', error);
|
| return { success: false, data: null, error: error.message };
|
| }
|
| }
|
|
|
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| async function saveApiLogToSupabase(apiName, endpoint, request, response, status) {
|
| try {
|
| const { data, error } = await supabaseClient
|
| .from('api_execution_logs')
|
| .insert({
|
| api_name: apiName,
|
| endpoint: endpoint,
|
| request_data: request,
|
| response_data: response,
|
| status: status,
|
| executed_at: new Date().toISOString()
|
| })
|
| .select();
|
|
|
| if (error) throw error;
|
|
|
| console.log('✅ API log saved:', apiName, status);
|
| return { success: true, data: data, error: null };
|
| } catch (error) {
|
| console.error('❌ Error saving API log:', error);
|
| return { success: false, data: null, error: error.message };
|
| }
|
| }
|
|
|
| |
| |
| |
| |
|
|
| async function getApiLogsFromSupabase(limit = 50) {
|
| try {
|
| const { data, error } = await supabaseClient
|
| .from('api_execution_logs')
|
| .select('*')
|
| .order('executed_at', { ascending: false })
|
| .limit(limit);
|
|
|
| if (error) throw error;
|
|
|
| console.log('✅ API logs loaded:', data.length);
|
| return { success: true, data: data, error: null };
|
| } catch (error) {
|
| console.error('❌ Error loading API logs:', error);
|
| return { success: false, data: [], error: error.message };
|
| }
|
| }
|
|
|
|
|
| window.savePageToSupabase = savePageToSupabase;
|
| window.loadPagesFromSupabase = loadPagesFromSupabase;
|
| window.loadPageFromSupabase = loadPageFromSupabase;
|
| window.saveApiLogToSupabase = saveApiLogToSupabase;
|
| window.getApiLogsFromSupabase = getApiLogsFromSupabase;
|
|
|