63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
package item
|
|
|
|
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")
|
|
}
|