(res);
@@ -908,7 +899,7 @@ export async function buscarPacientePorUserId(userId?: string | null): Promise(url, headers).catch(() => []);
if (arr && arr.length) return arr[0];
return null;
@@ -925,7 +916,7 @@ export async function buscarPacientePorId(id: string | number): Promise(url, headers);
if (arr && arr.length) return arr[0];
} catch (e) {
@@ -943,7 +934,7 @@ export async function buscarPacientePorId(id: string | number): Promise(url, headers, [alt]);
if (arr2 && arr2.length) return arr2[0];
}
@@ -1348,31 +1339,31 @@ export async function buscarRelatorioPorId(id: string | number): Promise
// 1) tenta por id (UUID ou campo id)
try {
const urlById = `${REST}/reports?id=eq.${encodeURIComponent(sId)}`;
- console.debug('[buscarRelatorioPorId] tentando por id URL:', urlById);
+ // Log removido por segurança
const arr = await fetchWithFallback(urlById, headers);
if (arr && arr.length) return arr[0];
} catch (e) {
- console.warn('[buscarRelatorioPorId] falha ao buscar por id:', e);
+ // Falha silenciosa - tenta próxima estratégia
}
// 2) tenta por order_number (caso o usuário cole um código legível)
try {
const urlByOrder = `${REST}/reports?order_number=eq.${encodeURIComponent(sId)}`;
- console.debug('[buscarRelatorioPorId] tentando por order_number URL:', urlByOrder);
+ // Log removido por segurança
const arr2 = await fetchWithFallback(urlByOrder, headers);
if (arr2 && arr2.length) return arr2[0];
} catch (e) {
- console.warn('[buscarRelatorioPorId] falha ao buscar por order_number:', e);
+ // Falha silenciosa - tenta próxima estratégia
}
// 3) tenta por patient_id (caso o usuário passe um patient_id em vez do report id)
try {
const urlByPatient = `${REST}/reports?patient_id=eq.${encodeURIComponent(sId)}`;
- console.debug('[buscarRelatorioPorId] tentando por patient_id URL:', urlByPatient);
+ // Log removido por segurança
const arr3 = await fetchWithFallback(urlByPatient, headers);
if (arr3 && arr3.length) return arr3[0];
} catch (e) {
- console.warn('[buscarRelatorioPorId] falha ao buscar por patient_id:', e);
+ // Falha silenciosa - não encontrado
}
// Não encontrado
@@ -1424,7 +1415,7 @@ export async function buscarPacientesPorIds(ids: Array): Promis
altParams.set('limit', '100');
const alt = `${REST}/patients?${altParams.toString()}`;
const headers = baseHeaders();
- console.debug('[buscarPacientesPorIds] URL (patient by name):', url);
+ // Log removido por segurança
const arr = await fetchWithFallback(url, headers, [alt]);
if (arr && arr.length) results.push(...arr);
} catch (e) {
@@ -1567,7 +1558,7 @@ export async function criarPaciente(input: PacienteInput): Promise {
const a = maskedHeaders.Authorization as string;
maskedHeaders.Authorization = `${a.slice(0,6)}...${a.slice(-6)}`;
}
- console.debug('[criarPaciente] POST', u, 'headers(masked):', maskedHeaders, 'payloadKeys:', Object.keys(payload));
+ // Log removido por segurança
const res = await fetch(u, {
method: 'POST',
headers,
@@ -1766,8 +1757,7 @@ export async function buscarMedicos(termo: string): Promise {
queries.push(`specialty=ilike.*${q}*`);
}
- // debug: mostrar queries construídas
- console.debug('[buscarMedicos] queries construídas:', queries);
+ // Debug removido por segurança
const results: Medico[] = [];
const seenIds = new Set();
@@ -1783,10 +1773,7 @@ export async function buscarMedicos(termo: string): Promise {
params.set('limit', '10');
const url = `${REST}/doctors?${params.toString()}`;
const headers = baseHeaders();
- const masked = (headers['Authorization'] as string | undefined) ? `${String(headers['Authorization']).slice(0,6)}...${String(headers['Authorization']).slice(-6)}` : null;
- console.debug('[buscarMedicos] URL params:', params.toString());
- console.debug('[buscarMedicos] URL:', url);
- console.debug('[buscarMedicos] Headers (masked):', { ...headers, Authorization: masked ? '<>' : undefined });
+ // Logs removidos por segurança
const res = await fetch(url, { method: 'GET', headers });
const arr = await parse(res);
@@ -1819,7 +1806,7 @@ export async function buscarMedicoPorId(id: string | number): Promise(url, baseHeaders());
if (arr && arr.length > 0) return arr[0];
}
@@ -1868,18 +1855,16 @@ export async function buscarMedicoPorId(id: string | number): Promise(mockUrl, { Accept: 'application/json' });
if (medico) {
- console.log('✅ Médico encontrado no Mock API:', medico);
return medico as Medico;
}
// fetchWithFallback returned null -> not found
- console.warn('[buscarMedicoPorId] mock API returned no result for id:', id);
return null;
} catch (fetchErr) {
- console.warn('[buscarMedicoPorId] mock API fetch failed or returned no result:', fetchErr);
+ // Falha silenciosa
return null;
}
} catch (error) {
@@ -1928,7 +1913,7 @@ export async function buscarMedicosPorIds(ids: Array): Promise<
altParams.set('limit', '200');
const alt = `${REST}/doctors?${altParams.toString()}`;
const headers = baseHeaders();
- console.debug('[buscarMedicosPorIds] URL (doctor by name):', url);
+ // Log removido por segurança
const socialAltParams = new URLSearchParams();
socialAltParams.set('social_name', `ilike.*${name}*`);
socialAltParams.set('limit', '200');
@@ -2047,7 +2032,7 @@ export async function criarMedico(input: MedicoInput): Promise {
const a = maskedHeaders.Authorization as string;
maskedHeaders.Authorization = `${a.slice(0,6)}...${a.slice(-6)}`;
}
- console.debug('[criarMedico] POST', u, 'headers(masked):', maskedHeaders, 'payloadKeys:', Object.keys(payload));
+ // Log removido por segurança
const res = await fetch(u, {
method: 'POST',
@@ -2106,12 +2091,7 @@ export async function criarMedico(input: MedicoInput): Promise {
const url = `${API_BASE}/functions/v1/create-doctor`;
const headers = { ...baseHeaders(), 'Content-Type': 'application/json' } as Record;
- const maskedHeaders = { ...headers } as Record;
- if (maskedHeaders.Authorization) {
- const a = maskedHeaders.Authorization as string;
- maskedHeaders.Authorization = `${a.slice(0,6)}...${a.slice(-6)}`;
- }
- console.debug('[criarMedico fallback] POST', url, 'headers(masked):', maskedHeaders, 'body:', JSON.stringify(fallbackPayload));
+ // Logs removidos por segurança
const res = await fetch(url, { method: 'POST', headers, body: JSON.stringify(fallbackPayload) });
const parsed = await parse(res as Response);
@@ -2198,19 +2178,14 @@ export async function vincularUserIdPaciente(pacienteId: string | number, userId
const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
const looksLikeUuid = uuidRegex.test(idStr);
// Allow non-UUID ids (legacy) but log a debug warning when it's not UUID
- if (!looksLikeUuid) console.warn('[vincularUserIdPaciente] pacienteId does not look like a UUID:', idStr);
+ // Log removido por segurança
const url = `${REST}/patients?id=eq.${encodeURIComponent(idStr)}`;
const payload = { user_id: String(userId) };
// Debug-friendly masked headers
const headers = withPrefer({ ...baseHeaders(), 'Content-Type': 'application/json' }, 'return=representation');
- const maskedHeaders = { ...headers } as Record;
- if (maskedHeaders.Authorization) {
- const a = maskedHeaders.Authorization as string;
- maskedHeaders.Authorization = a.slice(0,6) + '...' + a.slice(-6);
- }
- console.debug('[vincularUserIdPaciente] PATCH', url, 'payload:', { ...payload }, 'headers(masked):', maskedHeaders);
+ // Logs removidos por segurança
const res = await fetch(url, {
method: 'PATCH',
@@ -2223,7 +2198,7 @@ export async function vincularUserIdPaciente(pacienteId: string | number, userId
const arr = await parse(res);
return Array.isArray(arr) ? arr[0] : (arr as Paciente);
} catch (err) {
- console.error('[vincularUserIdPaciente] erro ao vincular:', { pacienteId: idStr, userId, url });
+ console.error('[vincularUserIdPaciente] erro ao vincular - falha na requisição');
throw err;
}
}
@@ -2232,8 +2207,7 @@ export async function vincularUserIdPaciente(pacienteId: string | number, userId
export async function atualizarMedico(id: string | number, input: MedicoInput): Promise {
- console.log(`Tentando atualizar médico ID: ${id}`);
- console.log(`Payload original:`, input);
+ // Logs removidos por segurança
// Criar um payload limpo apenas com campos básicos que sabemos que existem
const cleanPayload = {
@@ -2280,7 +2254,7 @@ export async function atualizarMedico(id: string | number, input: MedicoInput):
// Atualizar apenas no Supabase (dados reais)
try {
const url = `${REST}/doctors?id=eq.${id}`;
- console.log(`URL de atualização: ${url}`);
+ // Log removido por segurança
const res = await fetch(url, {
method: "PATCH",
@@ -2288,12 +2262,12 @@ export async function atualizarMedico(id: string | number, input: MedicoInput):
body: JSON.stringify(cleanPayload),
});
- console.log(`Resposta do servidor: ${res.status} ${res.statusText}`);
+ // Log removido por segurança
if (res.ok) {
const arr = await parse(res);
const result = Array.isArray(arr) ? arr[0] : (arr as Medico);
- console.log('Médico atualizado no Supabase:', result);
+ // Log removido por segurança
return result;
} else {
// Vamos tentar ver o erro detalhado
diff --git a/susconecta/lib/assignment.ts b/susconecta/lib/assignment.ts
index a8ed968..d2a688a 100644
--- a/susconecta/lib/assignment.ts
+++ b/susconecta/lib/assignment.ts
@@ -139,15 +139,12 @@ export async function listAssignmentsForPatient(patientId: string): Promise {
- console.log(`🔍 [ASSIGNMENT] Listando atribuições para o usuário: ${userId}`);
+ // Log removido por segurança
const url = `${ASSIGNMENTS_URL}?user_id=eq.${encodeURIComponent(userId)}`;
try {
const headers = getHeaders();
- console.debug('[ASSIGNMENT] GET', url, 'headers(masked)=', {
- ...headers,
- Authorization: headers.Authorization ? '<>' : undefined,
- });
+ // Logs removidos por segurança
const response = await fetch(url, {
method: 'GET',
headers,
@@ -156,7 +153,7 @@ export async function listAssignmentsForUser(userId: string): Promise '');
- console.debug('[ASSIGNMENT] response status=', response.status, response.statusText, 'content-type=', contentType, 'bodyPreview=', txt ? (txt.length > 1000 ? txt.slice(0,1000) + '...[truncated]' : txt) : '');
+ // Log removido por segurança
if (!response.ok) {
const errorBody = txt || '';
diff --git a/susconecta/lib/reports.ts b/susconecta/lib/reports.ts
index c651f2c..48949ea 100644
--- a/susconecta/lib/reports.ts
+++ b/susconecta/lib/reports.ts
@@ -140,22 +140,14 @@ export async function listarRelatorios(filtros?: { patient_id?: string; status?:
cabecalhos['Authorization'] = `Bearer ${token}`;
}
- // Logs de depuração (mask token)
- const masked = token ? `${token.slice(0, 6)}...${token.slice(-6)}` : null;
- console.log('[listarRelatorios] URL:', url);
- console.log('[listarRelatorios] Authorization (masked):', masked);
- console.log('[listarRelatorios] Headers (masked):', {
- ...cabecalhos,
- Authorization: cabecalhos['Authorization'] ? '<>' : undefined,
- });
+ // Logs removidos por segurança
const resposta = await fetch(url, {
method: 'GET',
headers: cabecalhos,
});
- console.log('[listarRelatorios] Status:', resposta.status, resposta.statusText);
+ // Logs removidos por segurança
const dados = await resposta.json().catch(() => null);
- console.log('[listarRelatorios] Payload:', dados);
if (!resposta.ok) throw new Error('Erro ao buscar relatórios');
if (Array.isArray(dados)) return dados;
if (dados && Array.isArray(dados.data)) return dados.data;
@@ -170,14 +162,14 @@ export async function listarRelatorios(filtros?: { patient_id?: string; status?:
*/
export async function buscarRelatorioPorId(id: string): Promise {
try {
- console.log('🔍 [API RELATÓRIOS] Buscando relatório ID:', id);
+ // Log removido por segurança
const resposta = await fetch(`${BASE_API_RELATORIOS}?id=eq.${id}`, {
method: 'GET',
headers: obterCabecalhos(),
});
const resultado = await tratarRespostaApi(resposta);
const relatorio = Array.isArray(resultado) && resultado.length > 0 ? resultado[0] : null;
- console.log('✅ [API RELATÓRIOS] Relatório encontrado:', relatorio);
+ // Log removido por segurança
if (!relatorio) throw new Error('Relatório não encontrado');
return relatorio;
} catch (erro) {
@@ -191,16 +183,14 @@ export async function buscarRelatorioPorId(id: string): Promise {
*/
export async function criarRelatorio(dadosRelatorio: CreateReportData, token?: string): Promise {
const headers = obterCabecalhos(token);
- const masked = (headers as any)['Authorization'] ? String((headers as any)['Authorization']).replace(/Bearer\s+(.+)/, 'Bearer ') : null;
- console.log('[criarRelatorio] POST', BASE_API_RELATORIOS);
- console.log('[criarRelatorio] Headers (masked):', { ...headers, Authorization: masked });
+ // Logs removidos por segurança
const resposta = await fetch(BASE_API_RELATORIOS, {
method: 'POST',
headers,
body: JSON.stringify(dadosRelatorio),
});
- console.log('[criarRelatorio] Status:', resposta.status, resposta.statusText);
+ // Log removido por segurança
if (!resposta.ok) {
let mensagemErro = `HTTP ${resposta.status}: ${resposta.statusText}`;
try {
@@ -229,8 +219,7 @@ export async function criarRelatorio(dadosRelatorio: CreateReportData, token?: s
*/
export async function atualizarRelatorio(id: string, dadosRelatorio: UpdateReportData): Promise {
try {
- console.log('📝 [API RELATÓRIOS] Atualizando relatório ID:', id);
- console.log('📤 [API RELATÓRIOS] Dados:', dadosRelatorio);
+ // Logs removidos por segurança
const resposta = await fetch(`${BASE_API_RELATORIOS}?id=eq.${id}`, {
method: 'PATCH',
headers: obterCabecalhos(),
@@ -238,7 +227,7 @@ export async function atualizarRelatorio(id: string, dadosRelatorio: UpdateRepor
});
const resultado = await tratarRespostaApi(resposta);
const relatorio = Array.isArray(resultado) && resultado.length > 0 ? resultado[0] : null;
- console.log('✅ [API RELATÓRIOS] Relatório atualizado:', relatorio);
+ // Log removido por segurança
if (!relatorio) throw new Error('Relatório não encontrado');
return relatorio;
} catch (erro) {
@@ -252,13 +241,13 @@ export async function atualizarRelatorio(id: string, dadosRelatorio: UpdateRepor
*/
export async function deletarRelatorio(id: string): Promise {
try {
- console.log('🗑️ [API RELATÓRIOS] Deletando relatório ID:', id);
+ // Log removido por segurança
const resposta = await fetch(`${BASE_API_RELATORIOS}/${id}`, {
method: 'DELETE',
headers: obterCabecalhos(),
});
await tratarRespostaApi(resposta);
- console.log('✅ [API RELATÓRIOS] Relatório deletado com sucesso');
+ // Log removido por segurança
} catch (erro) {
console.error('❌ [API RELATÓRIOS] Erro ao deletar relatório:', erro);
throw erro;
@@ -270,20 +259,19 @@ export async function deletarRelatorio(id: string): Promise {
*/
export async function listarRelatoriosPorPaciente(idPaciente: string): Promise {
try {
- console.log('👤 [API RELATÓRIOS] Buscando relatórios do paciente:', idPaciente);
+ // Logs removidos por segurança
// Try a strict eq lookup first (encode the id)
const encodedId = encodeURIComponent(String(idPaciente));
let url = `${BASE_API_RELATORIOS}?patient_id=eq.${encodedId}`;
const headers = obterCabecalhos();
const masked = (headers as any)['Authorization'] ? `${String((headers as any)['Authorization']).slice(0,6)}...${String((headers as any)['Authorization']).slice(-6)}` : null;
- console.debug('[listarRelatoriosPorPaciente] URL:', url);
- console.debug('[listarRelatoriosPorPaciente] Headers (masked):', { ...headers, Authorization: masked ? '<>' : undefined });
+ // Logs removidos por segurança
const resposta = await fetch(url, {
method: 'GET',
headers,
});
const resultado = await tratarRespostaApi(resposta);
- console.log('✅ [API RELATÓRIOS] Relatórios do paciente encontrados (eq):', resultado.length);
+ // Log removido por segurança
// If eq returned results, return them. Otherwise retry using `in.(id)` which some setups prefer.
if (Array.isArray(resultado) && resultado.length) return resultado;
@@ -291,13 +279,13 @@ export async function listarRelatoriosPorPaciente(idPaciente: string): Promise(resp2);
- console.log('✅ [API RELATÓRIOS] Relatórios do paciente encontrados (in):', Array.isArray(res2) ? res2.length : 0);
+ // Log removido por segurança
return Array.isArray(res2) ? res2 : [];
} catch (e) {
- console.warn('[listarRelatoriosPorPaciente] fallback in.() failed', e);
+ // Log removido por segurança
}
return [];
@@ -315,15 +303,13 @@ export async function listarRelatoriosPorMedico(idMedico: string): Promise>' : undefined });
+ // Logs removidos por segurança
const resposta = await fetch(url, {
method: 'GET',
headers: obterCabecalhos(),
});
const resultado = await tratarRespostaApi(resposta);
- console.log('✅ [API RELATÓRIOS] Relatórios do médico encontrados:', resultado.length);
+ // Log removido por segurança
return resultado;
} catch (erro) {
console.error('❌ [API RELATÓRIOS] Erro ao buscar relatórios do médico:', erro);
@@ -346,13 +332,11 @@ export async function listarRelatoriosPorPacientes(ids: string[]): Promise>' : undefined;
- console.debug('[listarRelatoriosPorPacientes] URL:', url);
- console.debug('[listarRelatoriosPorPacientes] Headers (masked):', { ...headers, Authorization: masked ? '<>' : undefined });
+ // Logs removidos por segurança
const resposta = await fetch(url, { method: 'GET', headers });
const resultado = await tratarRespostaApi(resposta);
- console.log('✅ [API RELATÓRIOS] Relatórios encontrados para pacientes:', resultado.length);
+ // Log removido por segurança
return resultado;
} catch (erro) {
console.error('❌ [API RELATÓRIOS] Erro ao buscar relatórios para vários pacientes:', erro);
@@ -368,26 +352,26 @@ export async function listarRelatoriosPorPacientes(ids: string[]): Promise {
try {
if (!userId) {
- console.warn('[listarRelatoriosParaMedicoAtribuido] userId ausente, retornando array vazio');
+ // Log removido por segurança
return [];
}
- console.log('[listarRelatoriosParaMedicoAtribuido] buscando assignments para user:', userId);
+ // Log removido por segurança
// importe dinamicamente para evitar possíveis ciclos
const assignmentMod = await import('./assignment');
const assigns = await assignmentMod.listAssignmentsForUser(String(userId));
if (!assigns || !Array.isArray(assigns) || assigns.length === 0) {
- console.log('[listarRelatoriosParaMedicoAtribuido] nenhum paciente atribuído encontrado para user:', userId);
+ // Log removido por segurança
return [];
}
const patientIds = Array.from(new Set(assigns.map((a: any) => String(a.patient_id)).filter(Boolean)));
if (!patientIds.length) {
- console.log('[listarRelatoriosParaMedicoAtribuido] nenhuma patient_id válida encontrada nas atribuições');
+ // Log removido por segurança
return [];
}
- console.log('[listarRelatoriosParaMedicoAtribuido] carregando relatórios para pacientes:', patientIds);
+ // Log removido por segurança
const rels = await listarRelatoriosPorPacientes(patientIds);
return rels || [];
} catch (err) {