mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 01:21:09 +02:00
- Restructure chat as apps/mobile, apps/web, apps/landing, backend - Add NestJS backend for secure Azure OpenAI API calls - Remove exposed API key from mobile app (security fix) - Add shared chat-types package - Create SvelteKit web app scaffold - Create Astro landing page scaffold - Update pnpm workspace configuration - Add project-level CLAUDE.md documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
31 lines
No EOL
1 KiB
PL/PgSQL
31 lines
No EOL
1 KiB
PL/PgSQL
-- Diese SQL-Funktion zum Löschen eines Dokuments erstellt eine sichere Methode
|
|
-- zum Löschen über RPC, was besser gegen Datenbank-Caching und Race-Conditions ist
|
|
|
|
-- Führen Sie dieses SQL im Supabase SQL-Editor aus
|
|
|
|
CREATE OR REPLACE FUNCTION delete_document_by_id(document_id uuid)
|
|
RETURNS boolean AS $$
|
|
DECLARE
|
|
success boolean;
|
|
affected_rows int;
|
|
BEGIN
|
|
-- Führe die eigentliche Löschung durch
|
|
DELETE FROM documents
|
|
WHERE id = document_id
|
|
AND conversation_id IN (
|
|
SELECT id FROM conversations WHERE user_id = auth.uid()
|
|
);
|
|
|
|
-- Speichere die Anzahl der betroffenen Zeilen
|
|
GET DIAGNOSTICS affected_rows = ROW_COUNT;
|
|
|
|
-- Setze den Erfolgsstatus basierend auf der Anzahl der gelöschten Zeilen
|
|
success := affected_rows > 0;
|
|
|
|
-- Gib das Ergebnis zurück (true wenn erfolgreich, false wenn nicht)
|
|
RETURN success;
|
|
END;
|
|
$$ LANGUAGE plpgsql SECURITY DEFINER;
|
|
|
|
-- Diese Funktion kann dann mit dem folgenden JavaScript aufgerufen werden:
|
|
-- const { data, error } = await supabase.rpc('delete_document_by_id', { document_id: 'uuid-here' }); |