package frontapi import ( "context" front "crossnokaye-interview-assignment/services/front/gen/front" 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" "log" ) type itemClient struct { getItem goa.Endpoint createItem goa.Endpoint updateItem goa.Endpoint deleteItem goa.Endpoint } // front service example implementation. // The example methods log the requests and return zero values. type frontsrvc struct { logger *log.Logger itemClient *itemClient } // NewFront returns the front service implementation. func NewFront(logger *log.Logger, itemClientConnection *grpc.ClientConn) front.Service { ic := genItemClient.NewClient(itemClientConnection) return &frontsrvc{logger: logger, itemClient: &itemClient{ ic.GetItem(), ic.CreateItem(), ic.UpdateItem(), ic.DeleteItem()}} } // GetItem implements getItem. func (s *frontsrvc) GetItem(ctx context.Context, id int) (res *front.Item, err error) { s.logger.Print("front.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 } // CreateItem implements createItem. func (s *frontsrvc) CreateItem(ctx context.Context, p *front.Item) (res *front.Item, err error) { s.logger.Print("front.createItem") createItemResponse, err := s.itemClient.createItem(ctx, (*genItem.Item)(p)) if err != nil { return nil, err } item := createItemResponse.(*genItem.Item) res = (*front.Item)(item) return } // UpdateItem implements updateItem. func (s *frontsrvc) UpdateItem(ctx context.Context, p *front.Item) (res *front.Item, err error) { s.logger.Print("front.updateItem") updateItemResponse, err := s.itemClient.updateItem(ctx, (*genItem.Item)(p)) if err != nil { return nil, err } item := updateItemResponse.(*genItem.Item) res = (*front.Item)(item) return } // DeleteItem implements deleteItem. func (s *frontsrvc) DeleteItem(ctx context.Context, p int) (err error) { s.logger.Print("front.deleteItem") _, err = s.itemClient.deleteItem(ctx, p) if err != nil { return err } return } // GetCharacter implements getCharacter. func (s *frontsrvc) GetCharacter(ctx context.Context, p int) (res *front.Character, err error) { res = &front.Character{} s.logger.Print("front.getCharacter") return } // CreateCharacter implements createCharacter. func (s *frontsrvc) CreateCharacter(ctx context.Context, p *front.Character) (res *front.Character, err error) { res = &front.Character{} s.logger.Print("front.createCharacter") return } // UpdateCharacter implements updateCharacter. func (s *frontsrvc) UpdateCharacter(ctx context.Context, p *front.Character) (res *front.Character, err error) { res = &front.Character{} s.logger.Print("front.updateCharacter") return } // DeleteCharacter implements deleteCharacter. func (s *frontsrvc) DeleteCharacter(ctx context.Context, p int) (err error) { s.logger.Print("front.deleteCharacter") return } // AddItemToInventory implements addItemToInventory. func (s *frontsrvc) AddItemToInventory(ctx context.Context, p int) (err error) { s.logger.Print("front.addItemToInventory") return } // RemoveItemFromInventory implements removeItemFromInventory. func (s *frontsrvc) RemoveItemFromInventory(ctx context.Context, p int) (err error) { s.logger.Print("front.removeItemFromInventory") return }