summaryrefslogtreecommitdiffstats
path: root/internal/handler/grpc
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handler/grpc')
-rw-r--r--internal/handler/grpc/server.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/handler/grpc/server.go b/internal/handler/grpc/server.go
index b65b527..4d6e700 100644
--- a/internal/handler/grpc/server.go
+++ b/internal/handler/grpc/server.go
@@ -13,6 +13,7 @@ import (
13type EventStore interface { 13type EventStore interface {
14 StoreEvent(context.Context, *storage.EventData) error 14 StoreEvent(context.Context, *storage.EventData) error
15 QueryEvents(context.Context, []*pb.Filter, *storage.QueryOptions) ([]*pb.Event, error) 15 QueryEvents(context.Context, []*pb.Filter, *storage.QueryOptions) ([]*pb.Event, error)
16 ProcessDeletion(context.Context, *pb.Event) error
16} 17}
17 18
18type Server struct { 19type Server struct {
@@ -58,6 +59,22 @@ func (s *Server) PublishEvent(ctx context.Context, req *pb.PublishEventRequest)
58 59
59 canonicalJSON := nostrEvent.Serialize() 60 canonicalJSON := nostrEvent.Serialize()
60 61
62 // Handle deletion events (kind 5) - process but don't store
63 if req.Event.Kind == 5 {
64 if err := s.store.ProcessDeletion(ctx, req.Event); err != nil {
65 return &pb.PublishEventResponse{
66 Accepted: false,
67 Message: fmt.Sprintf("deletion failed: %v", err),
68 CanonicalJson: canonicalJSON,
69 }, nil
70 }
71 return &pb.PublishEventResponse{
72 Accepted: true,
73 Message: "deleted",
74 CanonicalJson: canonicalJSON,
75 }, nil
76 }
77
61 eventData := &storage.EventData{ 78 eventData := &storage.EventData{
62 Event: req.Event, 79 Event: req.Event,
63 CanonicalJSON: canonicalJSON, 80 CanonicalJSON: canonicalJSON,