feat(AddEvent): add pointer when adding event (#68)

This commit is contained in:
Isaque Veras 2023-06-12 08:19:07 -03:00 committed by GitHub
parent 0efec9b905
commit ee84bf513f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 7 deletions

View File

@ -8,11 +8,16 @@ import (
"github.com/nbd-wtf/go-nostr"
)
func AddEvent(ctx context.Context, relay Relay, evt nostr.Event) (accepted bool, message string) {
// AddEvent has a business rule to add an event to the relayer
func AddEvent(ctx context.Context, relay Relay, evt *nostr.Event) (accepted bool, message string) {
if evt == nil {
return false, ""
}
store := relay.Storage(ctx)
advancedSaver, _ := store.(AdvancedSaver)
if !relay.AcceptEvent(ctx, &evt) {
if !relay.AcceptEvent(ctx, evt) {
return false, "blocked: event blocked by relay"
}
@ -20,10 +25,10 @@ func AddEvent(ctx context.Context, relay Relay, evt nostr.Event) (accepted bool,
// do not store ephemeral events
} else {
if advancedSaver != nil {
advancedSaver.BeforeSave(ctx, &evt)
advancedSaver.BeforeSave(ctx, evt)
}
if saveErr := store.SaveEvent(ctx, &evt); saveErr != nil {
if saveErr := store.SaveEvent(ctx, evt); saveErr != nil {
switch saveErr {
case storage.ErrDupEvent:
return true, saveErr.Error()
@ -33,11 +38,11 @@ func AddEvent(ctx context.Context, relay Relay, evt nostr.Event) (accepted bool,
}
if advancedSaver != nil {
advancedSaver.AfterSave(&evt)
advancedSaver.AfterSave(evt)
}
}
notifyListeners(&evt)
notifyListeners(evt)
return true, ""
}

View File

@ -176,7 +176,7 @@ func (s *Server) HandleWebsocket(w http.ResponseWriter, r *http.Request) {
return
}
ok, message := AddEvent(ctx, s.relay, evt)
ok, message := AddEvent(ctx, s.relay, &evt)
ws.WriteJSON([]interface{}{"OK", evt.ID, ok, message})
case "COUNT":