Successfully returning getItem response from item service
This commit is contained in:
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user