From 89b8948195f24df127b7ae656ab3f60bd1b49ac7 Mon Sep 17 00:00:00 2001 From: bndw Date: Fri, 13 Feb 2026 20:36:12 -0800 Subject: refactor: simplify deletion handling (remove NIP-09 processing) Remove deletion processing logic in favor of simpler approach: - Remove deletions table from schema - Delete deletions.go and deletions_test.go - Remove ProcessDeletion from EventStore interface - Kind 5 events now stored like any other event (no special handling) - Update storage test to expect 2 tables instead of 3 - All 41 tests passing --- internal/storage/deletions.go | 70 ------------------------------------------- 1 file changed, 70 deletions(-) delete mode 100644 internal/storage/deletions.go (limited to 'internal/storage/deletions.go') diff --git a/internal/storage/deletions.go b/internal/storage/deletions.go deleted file mode 100644 index 1a07e3c..0000000 --- a/internal/storage/deletions.go +++ /dev/null @@ -1,70 +0,0 @@ -package storage - -import ( - "context" - "fmt" - - pb "northwest.io/nostr-grpc/api/nostr/v1" -) - -const KindDeletion = 5 - -func (s *Storage) ProcessDeletion(ctx context.Context, deletionEvent *pb.Event) error { - if deletionEvent.Kind != KindDeletion { - return fmt.Errorf("not a deletion event") - } - - var eventIDsToDelete []string - for _, tag := range deletionEvent.Tags { - if len(tag.Values) >= 2 && tag.Values[0] == "e" { - eventIDsToDelete = append(eventIDsToDelete, tag.Values[1]) - } - } - - if len(eventIDsToDelete) == 0 { - return nil - } - - tx, err := s.db.BeginTx(ctx, nil) - if err != nil { - return fmt.Errorf("failed to begin transaction: %w", err) - } - defer tx.Rollback() - - for _, eventID := range eventIDsToDelete { - var eventPubkey string - err := tx.QueryRowContext(ctx, - "SELECT pubkey FROM events WHERE id = ? AND deleted = 0", - eventID, - ).Scan(&eventPubkey) - - if err != nil { - continue - } - - if eventPubkey != deletionEvent.Pubkey { - continue - } - - _, err = tx.ExecContext(ctx, - "UPDATE events SET deleted = 1 WHERE id = ?", - eventID, - ) - if err != nil { - return fmt.Errorf("failed to mark event as deleted: %w", err) - } - - _, err = tx.ExecContext(ctx, - "INSERT OR IGNORE INTO deletions (deleted_event_id, deletion_event_id, pubkey, created_at) VALUES (?, ?, ?, ?)", - eventID, - deletionEvent.Id, - deletionEvent.Pubkey, - deletionEvent.CreatedAt, - ) - if err != nil { - return fmt.Errorf("failed to record deletion: %w", err) - } - } - - return tx.Commit() -} -- cgit v1.2.3