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