This commit is contained in:
Brandon Watson
2023-08-12 19:13:13 -04:00
parent 68f3801219
commit bcf69e2f68
3 changed files with 77 additions and 1 deletions

2
.gitignore vendored
View File

@ -13,7 +13,7 @@
*.test
bin
**/cmd
**/gen
services/**/gen
api-cli
# Output of the go coverage tool, specifically when used with LiteIDE

14
scripts/gen Executable file
View File

@ -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

View File

@ -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")
}