From 8bf096e7a353e0c46781e5d9248aaecd926cbe4f Mon Sep 17 00:00:00 2001 From: Yordan Kinkov <yordan.kinkov@vereign.com> Date: Thu, 30 Jun 2022 08:48:51 +0300 Subject: [PATCH] #19 code review changes --- cmd/cache/main.go | 12 ++++++------ internal/clients/{queue => event}/client.go | 18 ++++++++---------- internal/service/cache/service.go | 16 ++++------------ 3 files changed, 18 insertions(+), 28 deletions(-) rename internal/clients/{queue => event}/client.go (73%) diff --git a/cmd/cache/main.go b/cmd/cache/main.go index 74c032b..9231fc1 100644 --- a/cmd/cache/main.go +++ b/cmd/cache/main.go @@ -7,7 +7,7 @@ import ( "net/http" "time" - cenats "github.com/cloudevents/sdk-go/protocol/nats/v2" + "github.com/cloudevents/sdk-go/protocol/nats/v2" cloudevents "github.com/cloudevents/sdk-go/v2" "github.com/kelseyhightower/envconfig" "go.uber.org/zap" @@ -22,7 +22,7 @@ import ( goahealthsrv "code.vereign.com/gaiax/tsa/cache/gen/http/health/server" goaopenapisrv "code.vereign.com/gaiax/tsa/cache/gen/http/openapi/server" "code.vereign.com/gaiax/tsa/cache/gen/openapi" - "code.vereign.com/gaiax/tsa/cache/internal/clients/queue" + "code.vereign.com/gaiax/tsa/cache/internal/clients/event" "code.vereign.com/gaiax/tsa/cache/internal/clients/redis" "code.vereign.com/gaiax/tsa/cache/internal/config" "code.vereign.com/gaiax/tsa/cache/internal/service" @@ -52,7 +52,7 @@ func main() { // create cloudevents nats sender // other protocol implementations: https://github.com/cloudevents/sdk-go/tree/main/protocol - sender, err := cenats.NewSender(cfg.Nats.Addr, cfg.Nats.Subject, cenats.NatsOptions()) + sender, err := nats.NewSender(cfg.Nats.Addr, cfg.Nats.Subject, nats.NatsOptions()) if err != nil { log.Fatalf("failed to create nats sender, %v", err) } @@ -64,8 +64,8 @@ func main() { log.Fatalf("failed to create cloudevents client, %v", err) } - // create queue client - queue := queue.New(eventsClient) + // create event client + event := event.New(eventsClient) // create services var ( @@ -73,7 +73,7 @@ func main() { healthSvc goahealth.Service ) { - cacheSvc = cache.New(redis, queue, logger) + cacheSvc = cache.New(redis, event, logger) healthSvc = health.New() } diff --git a/internal/clients/queue/client.go b/internal/clients/event/client.go similarity index 73% rename from internal/clients/queue/client.go rename to internal/clients/event/client.go index 966198b..3a0a022 100644 --- a/internal/clients/queue/client.go +++ b/internal/clients/event/client.go @@ -1,4 +1,4 @@ -package queue +package event import ( "context" @@ -10,19 +10,18 @@ import ( "github.com/google/uuid" ) -const eventType = "External cache input" +const eventType = "cache_set_event" type Client struct { - eventClient cloudevents.Client + events cloudevents.Client } type Data struct { - Key string `json:"key"` - Value string `json:"value"` + Key string `json:"key"` } func New(eventClient cloudevents.Client) *Client { - return &Client{eventClient: eventClient} + return &Client{events: eventClient} } func (c *Client) Send(ctx context.Context, key string, data interface{}) error { @@ -31,7 +30,7 @@ func (c *Client) Send(ctx context.Context, key string, data interface{}) error { return err } - res := c.eventClient.Send(ctx, *e) + res := c.events.Send(ctx, *e) if cloudevents.IsUndelivered(res) { return fmt.Errorf("failed to send event for key: %s, reason: %v", key, res) } @@ -42,13 +41,12 @@ func (c *Client) Send(ctx context.Context, key string, data interface{}) error { func newEvent(key string, data interface{}) (*event.Event, error) { e := cloudevents.NewEvent() e.SetID(uuid.NewString()) // required field - e.SetSource(eventType) // required field + e.SetSource("cache") // required field e.SetType(eventType) // required field e.SetTime(time.Now()) err := e.SetData(event.ApplicationJSON, &Data{ - Key: key, - Value: fmt.Sprintf("%v", data), + Key: key, }) if err != nil { return nil, err diff --git a/internal/service/cache/service.go b/internal/service/cache/service.go index 49280a8..d1bdc4f 100644 --- a/internal/service/cache/service.go +++ b/internal/service/cache/service.go @@ -116,19 +116,11 @@ func (s *Service) SetExternal(ctx context.Context, req *cache.CacheSetRequest) e func makeCacheKey(key string, namespace, scope *string) string { k := key - var n, s string - if namespace != nil { - n = *namespace + if namespace != nil && *namespace != "" { + k += "," + *namespace } - if scope != nil { - s = *scope - } - - if n != "" { - k += "," + n - } - if s != "" { - k += "," + s + if scope != nil && *scope != "" { + k += "," + *scope } return k } -- GitLab