From bcf69e2f681d114f218d9ddd04512b7d31170cd6 Mon Sep 17 00:00:00 2001 From: Brandon Watson Date: Sat, 12 Aug 2023 19:13:13 -0400 Subject: [PATCH] WIP --- .gitignore | 2 +- scripts/gen | 14 ++++++ services/front/client/item/itemClient.go | 62 ++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100755 scripts/gen create mode 100644 services/front/client/item/itemClient.go diff --git a/.gitignore b/.gitignore index 8a52e8a..56bebff 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,7 @@ *.test bin **/cmd -**/gen +services/**/gen api-cli # Output of the go coverage tool, specifically when used with LiteIDE diff --git a/scripts/gen b/scripts/gen new file mode 100755 index 0000000..635950c --- /dev/null +++ b/scripts/gen @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e + +GIT_ROOT=$(git rev-parse --show-toplevel) +pushd ${GIT_ROOT} + +echo "Generating Goa code..." + +for svc in front character item inventory; do + goa gen crossnokaye-interview-assignment/services/${svc}/design -o services/${svc} +done + +popd \ No newline at end of file diff --git a/services/front/client/item/itemClient.go b/services/front/client/item/itemClient.go new file mode 100644 index 0000000..5b94507 --- /dev/null +++ b/services/front/client/item/itemClient.go @@ -0,0 +1,62 @@ +package itemClient + +import ( + "context" + + "github.com/golang/protobuf/ptypes/empty" + goa "goa.design/goa/v3/pkg" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" + + genClient "crossnokaye-interview-assignment/services/item/gen/grpc/item/client" + genItem "crossnokaye-interview-assignment/services/item/gen/item" +) + +type ( + ItemClient interface { + GetItemRequest(ctx context.Context, id int32) (*genItem.Item, error) + // listItems(ctx context.Context) (*Forecast, error) + CreateItemRequest(ctx context.Context, item genItem.Item) (*genItem.Item, error) + UpdateItemRequest(ctx context.Context, item genItem.Item) (*genItem.Item, error) + DeleteItemRequest(ctx context.Context, id int32) (*empty.Empty, error) + } + + // client is the client implementation. + itemClient struct { + getItem goa.Endpoint + createItem goa.Endpoint + updateItem goa.Endpoint + deleteItem goa.Endpoint + } +) + +// New instantiates a new forecast service client. +func New(clientConnection *grpc.ClientConn) ItemClient { + c := genClient.NewClient(clientConnection, grpc.WaitForReady(true)) + return &itemClient{c.GetItem(), c.CreateItem(), c.UpdateItem(), c.DeleteItem()} +} + +// createItemRequest implements ItemClient. +func (itemClient *itemClient) CreateItemRequest(ctx context.Context, item genItem.Item) (*genItem.Item, error) { + res, err := itemClient.createItem(ctx, item); + if err != nil { + return nil, err + } + + return res.(*genItem.Item), nil +} + +// deleteItemRequest implements ItemClient. +func (itemClient *itemClient) DeleteItemRequest(ctx context.Context, id int32) (*emptypb.Empty, error) { + panic("unimplemented") +} + +// getItemRequest implements ItemClient. +func (itemClient *itemClient) GetItemRequest(ctx context.Context, id int32) (*genItem.Item, error) { + panic("unimplemented") +} + +// updateItemRequest implements ItemClient. +func (itemClient *itemClient) UpdateItemRequest(ctx context.Context, item genItem.Item) (*genItem.Item, error) { + panic("unimplemented") +}