Skip to content

Commit

Permalink
fix: cyclic import issue
Browse files Browse the repository at this point in the history
  • Loading branch information
eaddingtonwhite committed Jan 30, 2022
1 parent 7e1e6f8 commit f3d4739
Show file tree
Hide file tree
Showing 13 changed files with 207 additions and 158 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.idea
.DS_Store
.DS_Store
vendor
4 changes: 2 additions & 2 deletions internal/grpcmanagers/control_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"crypto/tls"

"github.com/momentohq/client-sdk-go/internal/interceptor"
internalRequests "github.com/momentohq/client-sdk-go/internal/requests"
"github.com/momentohq/client-sdk-go/internal/models"
"github.com/momentohq/client-sdk-go/internal/scserrors"

"google.golang.org/grpc"
Expand All @@ -15,7 +15,7 @@ type ControlGrpcManager struct {
Conn *grpc.ClientConn
}

func NewControlGrpcManager(request *internalRequests.ControlGrpcManagerRequest) (*ControlGrpcManager, error) {
func NewControlGrpcManager(request *models.ControlGrpcManagerRequest) (*ControlGrpcManager, error) {
config := &tls.Config{
InsecureSkipVerify: false,
}
Expand Down
4 changes: 2 additions & 2 deletions internal/grpcmanagers/data_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package grpcmanagers

import (
"crypto/tls"
"github.com/momentohq/client-sdk-go/internal/models"

"github.com/momentohq/client-sdk-go/internal/interceptor"
internalRequests "github.com/momentohq/client-sdk-go/internal/requests"
"github.com/momentohq/client-sdk-go/internal/scserrors"

"google.golang.org/grpc"
Expand All @@ -15,7 +15,7 @@ type DataGrpcManager struct {
Conn *grpc.ClientConn
}

func NewDataGrpcManager(request *internalRequests.DataGrpcManagerRequest) (*DataGrpcManager, error) {
func NewDataGrpcManager(request *models.DataGrpcManagerRequest) (*DataGrpcManager, error) {
config := &tls.Config{
InsecureSkipVerify: false,
}
Expand Down
99 changes: 0 additions & 99 deletions internal/models/internal_operation_responses.go

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package models

import pb "github.com/momentohq/client-sdk-go/internal/protos"
import (
"fmt"
pb "github.com/momentohq/client-sdk-go/internal/protos"
)

type ResolveRequest struct {
AuthToken string
Expand Down Expand Up @@ -33,3 +36,7 @@ type ConvertEcacheResultRequest struct {
Message string
OpName string
}

func ConvertEcacheResult(request ConvertEcacheResultRequest) error {
return fmt.Errorf("CacheService returned an unexpected result: %v for operation: %s with message: %s", request.ECacheResult, request.OpName, request.Message)
}
84 changes: 84 additions & 0 deletions internal/models/responses.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package models

import (
pb "github.com/momentohq/client-sdk-go/internal/protos"
)

type CreateCacheRequest struct {
CacheName string
}

type DeleteCacheRequest struct {
CacheName string
}

type ListCachesRequest struct {
NextToken string
}

type ListCachesResponse struct {
NextToken string
Caches []CacheInfo
}

func NewListCacheResponse(resp *pb.ListCachesResponse) *ListCachesResponse {
var caches = []CacheInfo{}
for _, cache := range resp.Cache {
caches = append(caches, NewCacheInfo(cache))
}
return &ListCachesResponse{NextToken: resp.NextToken, Caches: caches}
}

type CacheInfo struct {
Name string
}

func NewCacheInfo(cache *pb.Cache) CacheInfo {
return CacheInfo{Name: cache.CacheName}
}

const (
HIT string = "HIT"
MISS string = "MISS"
)

type CacheGetRequest struct {
CacheName string
Key interface{}
}

type GetCacheResponse struct {
Value []byte
Result string
}

func NewGetCacheResponse(resp *pb.GetResponse) (*GetCacheResponse, error) {
var result string
if resp.Result == pb.ECacheResult_Hit {
result = HIT
} else if resp.Result == pb.ECacheResult_Miss {
result = MISS
} else {
return nil, ConvertEcacheResult(ConvertEcacheResultRequest{
ECacheResult: resp.Result,
Message: resp.Message,
OpName: "GET",
})
}
return &GetCacheResponse{Value: resp.CacheBody, Result: result}, nil
}

type CacheSetRequest struct {
CacheName string
Key interface{}
Value interface{}
TtlSeconds uint32
}

type SetCacheResponse struct {
Value []byte
}

func NewSetCacheResponse(resp *pb.SetResponse, value []byte) *SetCacheResponse {
return &SetCacheResponse{Value: value}
}
4 changes: 2 additions & 2 deletions internal/resolver/end_point_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package resolver
import (
"reflect"

"github.com/momentohq/client-sdk-go/internal/requests"
"github.com/momentohq/client-sdk-go/internal/models"

"github.com/golang-jwt/jwt/v4"
)
Expand All @@ -20,7 +20,7 @@ type Endpoints struct {
CacheEndpoint string
}

func Resolve(request *requests.ResolveRequest) (*Endpoints, error) {
func Resolve(request *models.ResolveRequest) (*Endpoints, error) {
if request.EndpointOverride != "" {
return &Endpoints{ControlEndpoint: MOMENTO_CONTROL_ENDPOINT_PREFIX + request.EndpointOverride, CacheEndpoint: MOMENTO_CACHE_ENDPOINT_PREFIX + request.EndpointOverride}, nil
}
Expand Down
8 changes: 4 additions & 4 deletions internal/scsmanagers/scs_control_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func (client *ScsControlClient) Close() error {
return client.grpcManager.Close()
}

func (client *ScsControlClient) CreateCache(request *requests.CreateCacheRequest) error {
func (client *ScsControlClient) CreateCache(request *models.CreateCacheRequest) error {
if !utility.IsCacheNameValid(request.CacheName) {
return fmt.Errorf("cache name cannot be empty")
}
Expand All @@ -48,7 +48,7 @@ func (client *ScsControlClient) CreateCache(request *requests.CreateCacheRequest
return nil
}

func (client *ScsControlClient) DeleteCache(request *requests.DeleteCacheRequest) error {
func (client *ScsControlClient) DeleteCache(request *models.DeleteCacheRequest) error {
if !utility.IsCacheNameValid(request.CacheName) {
return fmt.Errorf("cache name cannot be empty")
}
Expand All @@ -61,12 +61,12 @@ func (client *ScsControlClient) DeleteCache(request *requests.DeleteCacheRequest
return nil
}

func (client *ScsControlClient) ListCaches(request *requests.ListCachesRequest) (*responses.ListCachesResponse, error) {
func (client *ScsControlClient) ListCaches(request *models.ListCachesRequest) (*models.ListCachesResponse, error) {
ctx, cancel := context.WithTimeout(context.Background(), ControlCtxTimeout)
defer cancel()
resp, err := client.controlClient.ListCaches(ctx, &pb.ListCachesRequest{NextToken: request.NextToken})
if err != nil {
return nil, scserrors.GrpcErrorConverter(err)
}
return responses.NewListCacheResponse(resp), nil
return models.NewListCacheResponse(resp), nil
}
28 changes: 21 additions & 7 deletions internal/scsmanagers/scs_data_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,18 @@ func NewScsDataClient(request *models.DataClientRequest) (*ScsDataClient, error)
if err != nil {
return nil, err
}
return &ScsDataClient{grpcManager: dataManager, dataClient: pb.NewScsClient(dataManager.Conn), defaultTtlSeconds: request.DefaultTtlSeconds}, nil
return &ScsDataClient{
grpcManager: dataManager,
dataClient: pb.NewScsClient(dataManager.Conn),
defaultTtlSeconds: request.DefaultTtlSeconds,
}, nil
}

func (client *ScsDataClient) Close() error {
return client.grpcManager.Close()
}

func (client *ScsDataClient) Set(request *requests.CacheSetRequest) (*responses.SetCacheResponse, error) {
func (client *ScsDataClient) Set(request *models.CacheSetRequest) (*models.SetCacheResponse, error) {
if !utility.IsCacheNameValid(request.CacheName) {
return nil, scserrors.InvalidInputError("cache name cannot be empty")
}
Expand All @@ -57,14 +61,21 @@ func (client *ScsDataClient) Set(request *requests.CacheSetRequest) (*responses.
}
ctx, cancel := context.WithTimeout(context.Background(), CacheCtxTimeout)
defer cancel()
resp, err := client.dataClient.Set(metadata.NewOutgoingContext(ctx, createNewMetadata(request.CacheName)), &pb.SetRequest{CacheKey: byteKey, CacheBody: byteValue, TtlMilliseconds: itemTtlMils})
resp, err := client.dataClient.Set(
metadata.NewOutgoingContext(ctx, createNewMetadata(request.CacheName)),
&pb.SetRequest{
CacheKey: byteKey,
CacheBody: byteValue,
TtlMilliseconds: itemTtlMils,
},
)
if err != nil {
return nil, scserrors.GrpcErrorConverter(err)
}
return responses.NewSetCacheResponse(resp, byteValue), nil
return models.NewSetCacheResponse(resp, byteValue), nil
}

func (client *ScsDataClient) Get(request *requests.CacheGetRequest) (*responses.GetCacheResponse, error) {
func (client *ScsDataClient) Get(request *models.CacheGetRequest) (*models.GetCacheResponse, error) {
if !utility.IsCacheNameValid(request.CacheName) {
return nil, scserrors.InvalidInputError("cache name cannot be empty")
}
Expand All @@ -74,11 +85,14 @@ func (client *ScsDataClient) Get(request *requests.CacheGetRequest) (*responses.
}
ctx, cancel := context.WithTimeout(context.Background(), CacheCtxTimeout)
defer cancel()
resp, err := client.dataClient.Get(metadata.NewOutgoingContext(ctx, createNewMetadata(request.CacheName)), &pb.GetRequest{CacheKey: byteKey})
resp, err := client.dataClient.Get(
metadata.NewOutgoingContext(ctx, createNewMetadata(request.CacheName)),
&pb.GetRequest{CacheKey: byteKey},
)
if err != nil {
return nil, scserrors.GrpcErrorConverter(err)
}
newResp, err := responses.NewGetCacheResponse(resp)
newResp, err := models.NewGetCacheResponse(resp)
if err != nil {
return nil, err
}
Expand Down
7 changes: 0 additions & 7 deletions internal/utility/utility.go
Original file line number Diff line number Diff line change
@@ -1,16 +1,9 @@
package utility

import (
"fmt"
"strings"

internalRequests "github.com/momentohq/client-sdk-go/internal/requests"
)

func IsCacheNameValid(cacheName string) bool {
return len(strings.TrimSpace(cacheName)) != 0
}

func ConvertEcacheResult(request internalRequests.ConvertEcacheResultRequest) error {
return fmt.Errorf("CacheService returned an unexpected result: %v for operation: %s with message: %s", request.ECacheResult, request.OpName, request.Message)
}
3 changes: 1 addition & 2 deletions momento/cache_operation_responses.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package momento
import (
"github.com/momentohq/client-sdk-go/internal/models"
pb "github.com/momentohq/client-sdk-go/internal/protos"
"github.com/momentohq/client-sdk-go/internal/utility"
)

type ListCachesResponse struct {
Expand Down Expand Up @@ -56,7 +55,7 @@ func NewGetCacheResponse(resp *pb.GetResponse) (*GetCacheResponse, error) {
} else if resp.Result == pb.ECacheResult_Miss {
result = MISS
} else {
return nil, utility.ConvertEcacheResult(models.ConvertEcacheResultRequest{
return nil, models.ConvertEcacheResult(models.ConvertEcacheResultRequest{
ECacheResult: resp.Result,
Message: resp.Message,
OpName: "GET",
Expand Down
Loading

0 comments on commit f3d4739

Please sign in to comment.