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