Seu Nome 04c6de47d5 feat: update Supabase connection details and enhance messaging functionality
- Changed Supabase URL and anon key for the connection.
- Added a cache buster file for page caching management.
- Integrated ChatMessages component into AcompanhamentoPaciente and MensagensMedico pages for improved messaging interface.
- Created new MensagensPaciente page for patient messaging.
- Updated PainelMedico to include messaging functionality with patients.
- Enhanced message service to support conversation retrieval and message sending.
- Added a test HTML file for Supabase connection verification and message table interaction.
2025-11-26 00:06:50 -03:00

72 lines
2.0 KiB
TypeScript

import { Handler } from '@netlify/functions';
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(
'https://yuanqfswhberkoevtmfr.supabase.co',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Inl1YW5xZnN3aGJlcmtvZXZ0bWZyIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc1NDk1NDM2OSwiZXhwIjoyMDcwNTMwMzY5fQ.BO9vXLKqJx7HxPQkrSbhCdAZ-y0n_Rg3UMEwvZqKr_g' // SERVICE ROLE KEY
);
export const handler: Handler = async (event) => {
// CORS headers
const headers = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
'Content-Type': 'application/json',
};
if (event.httpMethod === 'OPTIONS') {
return { statusCode: 200, headers, body: '' };
}
try {
const { action, sender_id, receiver_id, content, user1_id, user2_id } = JSON.parse(event.body || '{}');
if (action === 'send') {
// Enviar mensagem
const { data, error } = await supabase
.from('messages')
.insert({ sender_id, receiver_id, content, read: false })
.select()
.single();
if (error) throw error;
return {
statusCode: 200,
headers,
body: JSON.stringify({ success: true, data }),
};
}
if (action === 'get') {
// Buscar mensagens
const { data, error } = await supabase
.from('messages')
.select('*')
.or(`and(sender_id.eq.${user1_id},receiver_id.eq.${user2_id}),and(sender_id.eq.${user2_id},receiver_id.eq.${user1_id})`)
.order('created_at', { ascending: true });
if (error) throw error;
return {
statusCode: 200,
headers,
body: JSON.stringify({ success: true, data }),
};
}
return {
statusCode: 400,
headers,
body: JSON.stringify({ error: 'Invalid action' }),
};
} catch (error: any) {
return {
statusCode: 500,
headers,
body: JSON.stringify({ error: error.message }),
};
}
};