From 19ee5860cb91affa0b2114711a9b084d76a04947 Mon Sep 17 00:00:00 2001 From: Shivanshu Raj Shrivastava Date: Tue, 29 Apr 2025 16:41:22 +0530 Subject: [PATCH] feat: add tracefunnel module and handler Signed-off-by: Shivanshu Raj Shrivastava --- pkg/modules/tracefunnel/tracefunnel.go | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 pkg/modules/tracefunnel/tracefunnel.go diff --git a/pkg/modules/tracefunnel/tracefunnel.go b/pkg/modules/tracefunnel/tracefunnel.go new file mode 100644 index 0000000000..4d609544f7 --- /dev/null +++ b/pkg/modules/tracefunnel/tracefunnel.go @@ -0,0 +1,41 @@ +package tracefunnel + +import ( + "context" + "net/http" + + traceFunnels "github.com/SigNoz/signoz/pkg/types/tracefunnel" +) + +// Module defines the interface for trace funnel operations +type Module interface { + Create(ctx context.Context, timestamp int64, name string, userID string, orgID string) (*traceFunnels.Funnel, error) + + Get(ctx context.Context, funnelID string) (*traceFunnels.Funnel, error) + + Update(ctx context.Context, funnel *traceFunnels.Funnel, userID string) error + + List(ctx context.Context, orgID string) ([]*traceFunnels.Funnel, error) + + Delete(ctx context.Context, funnelID string) error + + Save(ctx context.Context, funnel *traceFunnels.Funnel, userID string, orgID string) error + + GetFunnelMetadata(ctx context.Context, funnelID string) (int64, int64, string, error) +} + +type Handler interface { + New(http.ResponseWriter, *http.Request) + + UpdateSteps(http.ResponseWriter, *http.Request) + + UpdateFunnel(http.ResponseWriter, *http.Request) + + List(http.ResponseWriter, *http.Request) + + Get(http.ResponseWriter, *http.Request) + + Delete(http.ResponseWriter, *http.Request) + + Save(http.ResponseWriter, *http.Request) +}