From 48cbc715d76e795ef8b9f04bf0653ec0c7df71fd Mon Sep 17 00:00:00 2001 From: Marcus Dantas Date: Fri, 15 Mar 2024 11:05:38 -0300 Subject: [PATCH] Add interface in topic --- pkg/pubsub/pubsub.go | 4 ++-- pkg/pubsub/topic.go | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/pubsub/pubsub.go b/pkg/pubsub/pubsub.go index 449e13e..30c94ac 100644 --- a/pkg/pubsub/pubsub.go +++ b/pkg/pubsub/pubsub.go @@ -34,8 +34,8 @@ func (c *Client) Close() { } } -func (c *Client) Topic(id string) *Topic { - return &Topic{ +func (c *Client) Topic(id string) Topic { + return &topic{ tp: c.clt.Topic(id), } } diff --git a/pkg/pubsub/topic.go b/pkg/pubsub/topic.go index 63cc270..edef2ef 100644 --- a/pkg/pubsub/topic.go +++ b/pkg/pubsub/topic.go @@ -8,11 +8,15 @@ import ( "github.com/mpsdantas/bottle/pkg/log" ) -type Topic struct { +type Topic interface { + Publish(ctx context.Context, event string, value interface{}) +} + +type topic struct { tp *pubsub.Topic } -func (t *Topic) Publish(ctx context.Context, event string, value interface{}) { +func (t *topic) Publish(ctx context.Context, event string, value interface{}) { go func(c context.Context) { data, err := json.Marshal(value) if err != nil {