// SGL · Cliente Correios (frontend) // Chama a Edge Function `correios-track`. As credenciais dos Correios ficam só nos // Secrets do Supabase — nunca trafegam pelo navegador. async function callCorreios(action, payload = {}) { if (!window.supa) { return { ok: false, error: 'Supabase não inicializado.' }; } const { data: { session } } = await window.supa.auth.getSession(); if (!session) { return { ok: false, error: 'Você precisa estar logado para usar este recurso.' }; } try { const { data, error } = await window.supa.functions.invoke('correios-track', { body: { action, ...payload } }); if (error) { let serverMsg = null; try { if (error.context && typeof error.context.json === 'function') { const body = await error.context.json(); serverMsg = body && (body.error || body.detalhe); } } catch { /* corpo não-JSON */ } if (error.name === 'FunctionsFetchError') { return { ok: false, error: 'Não foi possível contatar o servidor. A função "correios-track" foi publicada?' }; } return { ok: false, error: serverMsg || error.message || 'Falha ao chamar correios-track.' }; } return data || { ok: false, error: 'Resposta vazia do servidor.' }; } catch (e) { return { ok: false, error: (e && e.message) || 'Erro inesperado ao contatar os Correios.' }; } } /** Testa as credenciais dos Correios (autentica e devolve a validade do token). */ async function testCorreios() { return callCorreios('test'); } /** Consulta o rastreio das postagens em trânsito e atualiza os eventos. */ async function atualizarRastreios() { return callCorreios('track'); } window.callCorreios = callCorreios; window.testCorreios = testCorreios; window.atualizarRastreios = atualizarRastreios;