Successfully returning getItem response from item service

This commit is contained in:
Brandon Watson
2023-08-13 20:40:27 -05:00
parent 98796d96fd
commit 346d87f3d1
3 changed files with 37 additions and 13 deletions

View File

@ -3,29 +3,49 @@ package frontapi
import ( import (
"context" "context"
front "crossnokaye-interview-assignment/services/front/gen/front" front "crossnokaye-interview-assignment/services/front/gen/front"
genClient "crossnokaye-interview-assignment/services/item/gen/grpc/item/client" genItemClient "crossnokaye-interview-assignment/services/item/gen/grpc/item/client"
genItem "crossnokaye-interview-assignment/services/item/gen/item"
goa "goa.design/goa/v3/pkg"
"google.golang.org/grpc" "google.golang.org/grpc"
"log" "log"
) )
type itemClient struct {
getItem goa.Endpoint
createItem goa.Endpoint
updateItem goa.Endpoint
deleteItem goa.Endpoint
}
// front service example implementation. // front service example implementation.
// The example methods log the requests and return zero values. // The example methods log the requests and return zero values.
type frontsrvc struct { type frontsrvc struct {
logger *log.Logger logger *log.Logger
itemClient *genClient.Client itemClient *itemClient
} }
// NewFront returns the front service implementation. // NewFront returns the front service implementation.
func NewFront(logger *log.Logger, itemClientConnection *grpc.ClientConn) front.Service { func NewFront(logger *log.Logger, itemClientConnection *grpc.ClientConn) front.Service {
return &frontsrvc{logger: logger, itemClient: genClient.NewClient(itemClientConnection)} ic := genItemClient.NewClient(itemClientConnection)
return &frontsrvc{logger: logger, itemClient: &itemClient{
ic.GetItem(),
ic.CreateItem(),
ic.UpdateItem(),
ic.DeleteItem()}}
} }
// GetItem implements getItem. // GetItem implements getItem.
func (s *frontsrvc) GetItem(ctx context.Context, id int) (res *front.Item, err error) { func (s *frontsrvc) GetItem(ctx context.Context, id int) (res *front.Item, err error) {
s.logger.Print("front.getItem") s.logger.Print("front.getItem")
s.logger.Print(s.itemClient.GetItem()) getItemResponse, err := s.itemClient.getItem(ctx, &genItem.GetItemPayload{ID: &id})
if err != nil {
return nil, err
}
item := getItemResponse.(*genItem.Item)
res = (*front.Item)(item)
return return
} }

View File

@ -9,17 +9,19 @@ import (
var _ = API("item", func() { var _ = API("item", func() {
Title("Item Service") Title("Item Service")
Server("item", func() { Server("item", func() {
Host("localhost", func() { Host("localhost", func() {
URI("grpc://localhost:8082") URI("grpc://localhost:8082")
}) })
}) })
}) })
var _ = Service("item", func() { var _ = Service("item", func() {
Description("A GRPC back service that handles CRUD operations for the items that exist and their attributes") Description("A GRPC back service that handles CRUD operations for the items that exist and their attributes")
Method("getItem", func() { Method("getItem", func() {
Payload(Int) Payload(func() {
Field(1, "id", Int)
})
Result(Item) Result(Item)
Error("NotFound") Error("NotFound")
@ -53,7 +55,9 @@ var _ = Service("item", func() {
}) })
Method("deleteItem", func() { Method("deleteItem", func() {
Payload(Int) Payload(func() {
Field(1, "id", Int)
})
Result(Empty) Result(Empty)
Error("NotFound") Error("NotFound")
Error("BadRequest") Error("BadRequest")
@ -64,4 +68,4 @@ var _ = Service("item", func() {
Response("BadRequest", CodeInvalidArgument) Response("BadRequest", CodeInvalidArgument)
}) })
}) })
}) })

View File

@ -18,7 +18,7 @@ func NewItem(logger *log.Logger) item.Service {
} }
// GetItem implements getItem. // GetItem implements getItem.
func (s *itemsrvc) GetItem(ctx context.Context, p int) (res *item.Item, err error) { func (s *itemsrvc) GetItem(ctx context.Context, p *item.GetItemPayload) (res *item.Item, err error) {
res = &item.Item{} res = &item.Item{}
s.logger.Print("item.getItem") s.logger.Print("item.getItem")
return return
@ -39,7 +39,7 @@ func (s *itemsrvc) UpdateItem(ctx context.Context, p *item.Item) (res *item.Item
} }
// DeleteItem implements deleteItem. // DeleteItem implements deleteItem.
func (s *itemsrvc) DeleteItem(ctx context.Context, p int) (err error) { func (s *itemsrvc) DeleteItem(ctx context.Context, p *item.DeleteItemPayload) (err error) {
s.logger.Print("item.deleteItem") s.logger.Print("item.deleteItem")
return return
} }