summaryrefslogtreecommitdiffstats
path: root/internal/handler/grpc/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handler/grpc/server.go')
-rw-r--r--internal/handler/grpc/server.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/internal/handler/grpc/server.go b/internal/handler/grpc/server.go
index b65b527..b1ffd96 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 {
@@ -75,6 +76,16 @@ func (s *Server) PublishEvent(ctx context.Context, req *pb.PublishEventRequest)
75 return nil, fmt.Errorf("failed to store event: %w", err) 76 return nil, fmt.Errorf("failed to store event: %w", err)
76 } 77 }
77 78
79 if req.Event.Kind == 5 {
80 if err := s.store.ProcessDeletion(ctx, req.Event); err != nil {
81 return &pb.PublishEventResponse{
82 Accepted: false,
83 Message: fmt.Sprintf("deletion processing failed: %v", err),
84 CanonicalJson: canonicalJSON,
85 }, nil
86 }
87 }
88
78 s.subs.MatchAndFan(req.Event) 89 s.subs.MatchAndFan(req.Event)
79 90
80 return &pb.PublishEventResponse{ 91 return &pb.PublishEventResponse{