"use client"; import React, { useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { buscarPacientePorId, buscarPacientes, listarPacientes } from "@/lib/api"; export const ApiTest = () => { const [testId, setTestId] = useState("7ddbd1e2-1aee-4f7a-94f9-ee4c735ca276"); const [resultado, setResultado] = useState(null); const [erro, setErro] = useState(null); const [carregando, setCarregando] = useState(false); const testarConexao = async () => { setCarregando(true); setErro(null); setResultado(null); try { console.log("Testando conexão com a API..."); // Primeiro teste básico const pacientes = await listarPacientes({ limit: 5 }); console.log("Pacientes encontrados:", pacientes); // Teste direto da API para ver estrutura const REST = "https://yuanqfswhberkoevtmfr.supabase.co/rest/v1"; const headers: Record = { apikey: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQ5NTQzNjksImV4cCI6MjA3MDUzMDM2OX0.g8Fm4XAvtX46zifBZnYVH4tVuQkqUH6Ia9CXQj4DztQ", Accept: "application/json", }; // Token do localStorage se disponível const token = localStorage.getItem("auth_token") || localStorage.getItem("token"); if (token) { headers.Authorization = `Bearer ${token}`; } console.log("Headers sendo usados:", headers); const directRes = await fetch(`${REST}/patients?limit=3&select=id,full_name,cpf,email`, { method: "GET", headers }); console.log("Status da resposta direta:", directRes.status); if (directRes.ok) { const directData = await directRes.json(); console.log("Dados diretos da API:", directData); setResultado({ tipo: "Conexão + Estrutura", data: { pacientes: pacientes, estruturaDireta: directData, statusCode: directRes.status, headers: Object.fromEntries(directRes.headers.entries()) } }); } else { const errorText = await directRes.text(); console.error("Erro na resposta direta:", errorText); setErro(`Erro ${directRes.status}: ${errorText}`); } } catch (error: any) { console.error("Erro na conexão:", error); setErro(error.message); } finally { setCarregando(false); } }; const testarBuscaPorId = async () => { if (!testId.trim()) { setErro("Digite um ID para buscar"); return; } setCarregando(true); setErro(null); setResultado(null); try { console.log("Buscando paciente por ID:", testId); const paciente = await buscarPacientePorId(testId); setResultado({ tipo: "Busca por ID", data: paciente }); } catch (error: any) { console.error("Erro na busca por ID:", error); setErro(error.message); } finally { setCarregando(false); } }; const testarBuscaGeral = async () => { if (!testId.trim()) { setErro("Digite um termo para buscar"); return; } setCarregando(true); setErro(null); setResultado(null); try { console.log("Buscando pacientes:", testId); const pacientes = await buscarPacientes(testId); setResultado({ tipo: "Busca geral", data: pacientes }); } catch (error: any) { console.error("Erro na busca geral:", error); setErro(error.message); } finally { setCarregando(false); } }; return ( Teste da API - Pacientes
setTestId(e.target.value)} className="flex-1" />
{erro && (

Erro:

{erro}

)} {resultado && (

Resultado ({resultado.tipo}):

              {JSON.stringify(resultado.data, null, 2)}
            
)}

Testar Conexão: Lista os primeiros 5 pacientes e verifica a estrutura da API

Buscar por ID: Busca um paciente específico por ID, CPF ou nome

Busca Geral: Busca avançada em múltiplos campos

Abra o console do navegador (F12) para ver logs detalhados da investigação.

); };