refactored SaveEvent to return if it is replacing an event
Some checks failed
Go / build (push) Has been cancelled

This commit is contained in:
2025-10-10 22:18:53 +01:00
parent bc5177e0ec
commit 3c11aa6f01
25 changed files with 50 additions and 50 deletions

View File

@@ -274,7 +274,7 @@ func (l *Listener) HandleEvent(msg []byte) (err error) {
env.E.Pubkey,
)
log.I.F("delete event pubkey hex: %s", hex.Enc(env.E.Pubkey))
if err, _ = l.SaveEvent(saveCtx, env.E); err != nil {
if _, err = l.SaveEvent(saveCtx, env.E); err != nil {
log.E.F("failed to save delete event %0x: %v", env.E.ID, err)
if strings.HasPrefix(err.Error(), "blocked:") {
errStr := err.Error()[len("blocked: "):len(err.Error())]
@@ -339,7 +339,7 @@ func (l *Listener) HandleEvent(msg []byte) (err error) {
saveCtx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
// log.I.F("saving event %0x, %s", env.E.ID, env.E.Serialize())
if err, _ = l.SaveEvent(saveCtx, env.E); err != nil {
if _, err = l.SaveEvent(saveCtx, env.E); err != nil {
if strings.HasPrefix(err.Error(), "blocked:") {
errStr := err.Error()[len("blocked: "):len(err.Error())]
if err = Ok.Error(

View File

@@ -166,7 +166,7 @@ func (pp *PaymentProcessor) syncFollowList() error {
}
// sign and save
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return err
}
log.I.F(
@@ -358,7 +358,7 @@ Log in to the relay dashboard to access your configuration at: %s`,
// Sign and save the event
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return fmt.Errorf("failed to save expiry warning note: %w", err)
}
@@ -472,7 +472,7 @@ Log in to the relay dashboard to access your configuration at: %s`,
// Sign and save the event
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return fmt.Errorf("failed to save trial reminder note: %w", err)
}
@@ -695,7 +695,7 @@ func (pp *PaymentProcessor) createPaymentNote(
// Sign and save the event
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return fmt.Errorf("failed to save payment note: %w", err)
}
@@ -801,7 +801,7 @@ Enjoy your time on the relay!`, monthlyPrice, monthlyPrice,
// Sign and save the event
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return fmt.Errorf("failed to save welcome note: %w", err)
}
@@ -918,7 +918,7 @@ func (pp *PaymentProcessor) UpdateRelayProfile() error {
// Sign and save the event
ev.Sign(sign)
if err, _ := pp.db.SaveEvent(pp.ctx, ev); err != nil {
if _, err := pp.db.SaveEvent(pp.ctx, ev); err != nil {
return fmt.Errorf("failed to save relay profile: %w", err)
}

View File

@@ -370,7 +370,7 @@ func (b *Benchmark) RunPeakThroughputTest() {
for ev := range eventChan {
eventStart := time.Now()
err, _ := b.db.SaveEvent(ctx, ev)
_, err := b.db.SaveEvent(ctx, ev)
latency := time.Since(eventStart)
mu.Lock()
@@ -460,7 +460,7 @@ func (b *Benchmark) RunBurstPatternTest() {
defer wg.Done()
eventStart := time.Now()
err, _ := b.db.SaveEvent(ctx, ev)
_, err := b.db.SaveEvent(ctx, ev)
latency := time.Since(eventStart)
mu.Lock()
@@ -554,7 +554,7 @@ func (b *Benchmark) RunMixedReadWriteTest() {
if eventIndex%2 == 0 {
// Write operation
writeStart := time.Now()
err, _ := b.db.SaveEvent(ctx, events[eventIndex])
_, err := b.db.SaveEvent(ctx, events[eventIndex])
writeLatency := time.Since(writeStart)
mu.Lock()
@@ -878,7 +878,7 @@ func (b *Benchmark) RunConcurrentQueryStoreTest() {
for time.Since(start) < b.config.TestDuration && eventIndex < len(writeEvents) {
// Write operation
writeStart := time.Now()
err, _ := b.db.SaveEvent(ctx, writeEvents[eventIndex])
_, err := b.db.SaveEvent(ctx, writeEvents[eventIndex])
writeLatency := time.Since(writeStart)
mu.Lock()

View File

@@ -422,7 +422,7 @@ func (f *Follows) startSubscriptions(ctx context.Context) {
)
}
if err, _ = f.D.SaveEvent(
if _, err = f.D.SaveEvent(
ctx, res.Event,
); err != nil {
if !strings.HasPrefix(

View File

@@ -55,7 +55,7 @@ func TestExport(t *testing.T) {
}
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event: %v", err)
}

View File

@@ -58,7 +58,7 @@ func TestFetchEventBySerial(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -56,7 +56,7 @@ func TestGetSerialById(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -63,7 +63,7 @@ func TestGetSerialsByRange(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -59,7 +59,7 @@ func (d *D) Import(rr io.Reader) {
continue
}
if err, _ = d.SaveEvent(d.ctx, ev); err != nil {
if _, err = d.SaveEvent(d.ctx, ev); err != nil {
// return the pooled buffer on error paths too
ev.Free()
continue

View File

@@ -43,7 +43,7 @@ func TestMultipleParameterizedReplaceableEvents(t *testing.T) {
baseEvent.Sign(sign)
// Save the base parameterized replaceable event
if err, _ := db.SaveEvent(ctx, baseEvent); err != nil {
if _, err := db.SaveEvent(ctx, baseEvent); err != nil {
t.Fatalf("Failed to save base parameterized replaceable event: %v", err)
}
@@ -61,7 +61,7 @@ func TestMultipleParameterizedReplaceableEvents(t *testing.T) {
newerEvent.Sign(sign)
// Save the newer parameterized replaceable event
if err, _ := db.SaveEvent(ctx, newerEvent); err != nil {
if _, err := db.SaveEvent(ctx, newerEvent); err != nil {
t.Fatalf(
"Failed to save newer parameterized replaceable event: %v", err,
)
@@ -81,7 +81,7 @@ func TestMultipleParameterizedReplaceableEvents(t *testing.T) {
newestEvent.Sign(sign)
// Save the newest parameterized replaceable event
if err, _ := db.SaveEvent(ctx, newestEvent); err != nil {
if _, err := db.SaveEvent(ctx, newestEvent); err != nil {
t.Fatalf(
"Failed to save newest parameterized replaceable event: %v", err,
)

View File

@@ -67,7 +67,7 @@ func TestQueryEventsBySearchTerms(t *testing.T) {
ev1.Content = []byte("Alpha beta visit https://example.com deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef")
ev1.Tags = tag.NewS()
ev1.Sign(sign)
if err, _ := db.SaveEvent(ctx, ev1); err != nil {
if _, err := db.SaveEvent(ctx, ev1); err != nil {
t.Fatalf("save ev1: %v", err)
}
@@ -79,7 +79,7 @@ func TestQueryEventsBySearchTerms(t *testing.T) {
ev2.Content = []byte("beta and GAMMA with nostr:nevent1qqqqq")
ev2.Tags = tag.NewS()
ev2.Sign(sign)
if err, _ := db.SaveEvent(ctx, ev2); err != nil {
if _, err := db.SaveEvent(ctx, ev2); err != nil {
t.Fatalf("save ev2: %v", err)
}
@@ -91,7 +91,7 @@ func TestQueryEventsBySearchTerms(t *testing.T) {
ev3.Content = []byte("see www.example.org #[1]")
ev3.Tags = tag.NewS()
ev3.Sign(sign)
if err, _ := db.SaveEvent(ctx, ev3); err != nil {
if _, err := db.SaveEvent(ctx, ev3); err != nil {
t.Fatalf("save ev3: %v", err)
}
@@ -104,7 +104,7 @@ func TestQueryEventsBySearchTerms(t *testing.T) {
ev4.Tags = tag.NewS()
*ev4.Tags = append(*ev4.Tags, tag.NewFromAny("t", "delta epsilon"))
ev4.Sign(sign)
if err, _ := db.SaveEvent(ctx, ev4); err != nil {
if _, err := db.SaveEvent(ctx, ev4); err != nil {
t.Fatalf("save ev4: %v", err)
}
@@ -117,7 +117,7 @@ func TestQueryEventsBySearchTerms(t *testing.T) {
ev5.Tags = tag.NewS()
*ev5.Tags = append(*ev5.Tags, tag.NewFromAny("t", "zeta"))
ev5.Sign(sign)
if err, _ := db.SaveEvent(ctx, ev5); err != nil {
if _, err := db.SaveEvent(ctx, ev5); err != nil {
t.Fatalf("save ev5: %v", err)
}

View File

@@ -64,7 +64,7 @@ func setupTestDB(t *testing.T) (
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}
@@ -204,7 +204,7 @@ func TestReplaceableEventsAndDeletion(t *testing.T) {
replaceableEvent.Tags = tag.NewS()
replaceableEvent.Sign(sign)
// Save the replaceable event
if err, _ := db.SaveEvent(ctx, replaceableEvent); err != nil {
if _, err := db.SaveEvent(ctx, replaceableEvent); err != nil {
t.Errorf("Failed to save replaceable event: %v", err)
}
@@ -217,7 +217,7 @@ func TestReplaceableEventsAndDeletion(t *testing.T) {
newerEvent.Tags = tag.NewS()
newerEvent.Sign(sign)
// Save the newer event
if err, _ := db.SaveEvent(ctx, newerEvent); err != nil {
if _, err := db.SaveEvent(ctx, newerEvent); err != nil {
t.Errorf("Failed to save newer event: %v", err)
}
@@ -286,7 +286,7 @@ func TestReplaceableEventsAndDeletion(t *testing.T) {
)
// Save the deletion event
if err, _ = db.SaveEvent(ctx, deletionEvent); err != nil {
if _, err = db.SaveEvent(ctx, deletionEvent); err != nil {
t.Fatalf("Failed to save deletion event: %v", err)
}
@@ -371,7 +371,7 @@ func TestParameterizedReplaceableEventsAndDeletion(t *testing.T) {
paramEvent.Sign(sign)
// Save the parameterized replaceable event
if err, _ := db.SaveEvent(ctx, paramEvent); err != nil {
if _, err := db.SaveEvent(ctx, paramEvent); err != nil {
t.Fatalf("Failed to save parameterized replaceable event: %v", err)
}
@@ -397,7 +397,7 @@ func TestParameterizedReplaceableEventsAndDeletion(t *testing.T) {
paramDeletionEvent.Sign(sign)
// Save the parameterized deletion event
if err, _ := db.SaveEvent(ctx, paramDeletionEvent); err != nil {
if _, err := db.SaveEvent(ctx, paramDeletionEvent); err != nil {
t.Fatalf("Failed to save parameterized deletion event: %v", err)
}
@@ -430,7 +430,7 @@ func TestParameterizedReplaceableEventsAndDeletion(t *testing.T) {
paramDeletionEvent2.Sign(sign)
// Save the parameterized deletion event with e-tag
if err, _ := db.SaveEvent(ctx, paramDeletionEvent2); err != nil {
if _, err := db.SaveEvent(ctx, paramDeletionEvent2); err != nil {
t.Fatalf(
"Failed to save parameterized deletion event with e-tag: %v", err,
)

View File

@@ -58,7 +58,7 @@ func TestQueryForAuthorsTags(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -58,7 +58,7 @@ func TestQueryForCreatedAt(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if _, _, err = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -60,7 +60,7 @@ func TestQueryForIds(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -59,7 +59,7 @@ func TestQueryForKindsAuthorsTags(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -59,7 +59,7 @@ func TestQueryForKindsAuthors(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -59,7 +59,7 @@ func TestQueryForKindsTags(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -58,7 +58,7 @@ func TestQueryForKinds(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -61,7 +61,7 @@ func TestQueryForSerials(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -58,7 +58,7 @@ func TestQueryForTags(t *testing.T) {
events = append(events, ev)
// Save the event to the database
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}

View File

@@ -103,7 +103,7 @@ func (d *D) WouldReplaceEvent(ev *event.E) (bool, types.Uint40s, error) {
// SaveEvent saves an event to the database, generating all the necessary indexes.
func (d *D) SaveEvent(c context.Context, ev *event.E) (
err error, replaced bool,
replaced bool, err error,
) {
if ev == nil {
err = errors.New("nil event")

View File

@@ -65,7 +65,7 @@ func TestSaveEvents(t *testing.T) {
// Save the event to the database
var k, v int
if err, _ = db.SaveEvent(ctx, ev); err != nil {
if _, err = db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event #%d: %v", eventCount+1, err)
}
kc += k
@@ -125,7 +125,7 @@ func TestDeletionEventWithETagRejection(t *testing.T) {
regularEvent.Sign(sign)
// Save the regular event
if err, _ := db.SaveEvent(ctx, regularEvent); err != nil {
if _, err := db.SaveEvent(ctx, regularEvent); err != nil {
t.Fatalf("Failed to save regular event: %v", err)
}
@@ -151,7 +151,7 @@ func TestDeletionEventWithETagRejection(t *testing.T) {
err = errorf.E("deletion events referencing other events with 'e' tag are not allowed")
} else {
// Try to save the deletion event
err, _ = db.SaveEvent(ctx, deletionEvent)
_, err = db.SaveEvent(ctx, deletionEvent)
}
if err == nil {
@@ -204,12 +204,12 @@ func TestSaveExistingEvent(t *testing.T) {
ev.Sign(sign)
// Save the event for the first time
if err, _ := db.SaveEvent(ctx, ev); err != nil {
if _, err := db.SaveEvent(ctx, ev); err != nil {
t.Fatalf("Failed to save event: %v", err)
}
// Try to save the same event again, it should be rejected
err, _ = db.SaveEvent(ctx, ev)
_, err = db.SaveEvent(ctx, ev)
if err == nil {
t.Fatal("Expected error when saving an existing event, but got nil")
}

View File

@@ -84,7 +84,7 @@ type Saver interface {
// SaveEvent is called once relay.AcceptEvent reports true. The owners
// parameter is for designating admins whose delete by e tag events apply
// the same as author's own.
SaveEvent(c context.Context, ev *event.E) (err error, replaced bool)
SaveEvent(c context.Context, ev *event.E) (replaced bool, err error)
}
type Importer interface {

View File

@@ -395,7 +395,7 @@ func (s *Spider) queryRelayForEvents(
}
// Save the event to the database
if err, _ := s.db.SaveEvent(s.ctx, ev); err != nil {
if _, err := s.db.SaveEvent(s.ctx, ev); err != nil {
if !strings.HasPrefix(err.Error(), "blocked:") {
log.T.F(
"Spider sync: error saving event from relay %s: %v",