From ef9aa29a994f110ea36349ea714ca273ee456d87 Mon Sep 17 00:00:00 2001 From: watsonb8 Date: Tue, 15 Aug 2023 19:55:36 -0500 Subject: [PATCH] Refactoring naming --- services/front/front.go | 115 ++++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 52 deletions(-) diff --git a/services/front/front.go b/services/front/front.go index 95e579a..52a112f 100644 --- a/services/front/front.go +++ b/services/front/front.go @@ -9,7 +9,6 @@ import ( genInventory "crossnokaye-interview-assignment/services/inventory/gen/inventory" genItemClient "crossnokaye-interview-assignment/services/item/gen/grpc/item/client" genItem "crossnokaye-interview-assignment/services/item/gen/item" - "errors" "fmt" "github.com/golang/protobuf/ptypes/empty" goa "goa.design/goa/v3/pkg" @@ -55,28 +54,28 @@ type frontsrvc struct { func NewFront(logger *log.Logger, itemClientConnection *grpc.ClientConn, characterClientConnection *grpc.ClientConn, inventoryClientConnection *grpc.ClientConn) front.Service { - ic := genItemClient.NewClient(itemClientConnection) - cc := genCharacterClient.NewClient(characterClientConnection) - icc := genInventoryClient.NewClient(inventoryClientConnection) + newItemClient := genItemClient.NewClient(itemClientConnection) + newCharacterClient := genCharacterClient.NewClient(characterClientConnection) + newInventoryClient := genInventoryClient.NewClient(inventoryClientConnection) return &frontsrvc{logger: logger, itemClient: &itemClient{ - ic.GetItem(), - ic.ListItems(), - ic.CreateItem(), - ic.UpdateItem(), - ic.DeleteItem()}, + newItemClient.GetItem(), + newItemClient.ListItems(), + newItemClient.CreateItem(), + newItemClient.UpdateItem(), + newItemClient.DeleteItem()}, characterClient: &characterClient{ - cc.GetCharacter(), - cc.ListCharacters(), - cc.CreateCharacter(), - cc.UpdateCharacter(), - cc.DeleteCharacter()}, + newCharacterClient.GetCharacter(), + newCharacterClient.ListCharacters(), + newCharacterClient.CreateCharacter(), + newCharacterClient.UpdateCharacter(), + newCharacterClient.DeleteCharacter()}, inventoryClient: &inventoryClient{ - icc.AddItem(), - icc.RemoveItem(), - icc.RemoveAll(), - icc.ListInventory(), - icc.ListCharactersWithItem(), + newInventoryClient.AddItem(), + newInventoryClient.RemoveItem(), + newInventoryClient.RemoveAll(), + newInventoryClient.ListInventory(), + newInventoryClient.ListCharactersWithItem(), }} } @@ -108,9 +107,9 @@ func (s *frontsrvc) ListItems(ctx context.Context) (res []*front.Item, err error } // CreateItem implements createItem. -func (s *frontsrvc) CreateItem(ctx context.Context, p *front.Item) (res *front.Item, err error) { +func (s *frontsrvc) CreateItem(ctx context.Context, itemPayload *front.Item) (res *front.Item, err error) { s.logger.Print("front.createItem") - createItemResponse, err := s.itemClient.createItem(ctx, (*genItem.Item)(p)) + createItemResponse, err := s.itemClient.createItem(ctx, (*genItem.Item)(itemPayload)) if err != nil { return nil, err } @@ -120,9 +119,9 @@ func (s *frontsrvc) CreateItem(ctx context.Context, p *front.Item) (res *front.I } // UpdateItem implements updateItem. -func (s *frontsrvc) UpdateItem(ctx context.Context, p *front.Item) (res *front.Item, err error) { +func (s *frontsrvc) UpdateItem(ctx context.Context, itemPayload *front.Item) (res *front.Item, err error) { s.logger.Print("front.updateItem") - updateItemResponse, err := s.itemClient.updateItem(ctx, (*genItem.Item)(p)) + updateItemResponse, err := s.itemClient.updateItem(ctx, (*genItem.Item)(itemPayload)) if err != nil { return nil, err } @@ -133,21 +132,19 @@ func (s *frontsrvc) UpdateItem(ctx context.Context, p *front.Item) (res *front.I } // DeleteItem implements deleteItem. -func (s *frontsrvc) DeleteItem(ctx context.Context, p string) (err error) { +func (s *frontsrvc) DeleteItem(ctx context.Context, name string) (err error) { s.logger.Print("front.deleteItem") - characterResponse, err := s.inventoryClient.listCharactersWithItem(ctx, &genInventory.ListCharactersWithItemPayload{ItemName: &p}) + characters, err := s.getCharactersUsingItem(ctx, name) if err != nil { return err } - characters := characterResponse.([]string) - if len(characters) > 0 { - return front.MakeBadRequest(fmt.Errorf("item '%s' is referenced by character(s) %v", p, characters)) + return front.MakeBadRequest(fmt.Errorf("item '%s' is referenced by character(s) %v", name, characters)) } - _, err = s.itemClient.deleteItem(ctx, &genItem.DeleteItemPayload{Name: &p}) + _, err = s.itemClient.deleteItem(ctx, &genItem.DeleteItemPayload{Name: &name}) if err != nil { return err } @@ -183,9 +180,9 @@ func (s *frontsrvc) ListCharacters(ctx context.Context) (res []*front.Character, } // CreateCharacter implements createCharacter. -func (s *frontsrvc) CreateCharacter(ctx context.Context, p *front.Character) (res *front.Character, err error) { +func (s *frontsrvc) CreateCharacter(ctx context.Context, characterPayload *front.Character) (res *front.Character, err error) { s.logger.Print("front.createCharacter") - createCharacterResponse, err := s.characterClient.createCharacter(ctx, (*genCharacter.Character)(p)) + createCharacterResponse, err := s.characterClient.createCharacter(ctx, (*genCharacter.Character)(characterPayload)) if err != nil { return nil, err } @@ -195,9 +192,9 @@ func (s *frontsrvc) CreateCharacter(ctx context.Context, p *front.Character) (re } // UpdateCharacter implements updateCharacter. -func (s *frontsrvc) UpdateCharacter(ctx context.Context, p *front.Character) (res *front.Character, err error) { +func (s *frontsrvc) UpdateCharacter(ctx context.Context, characterPayload *front.Character) (res *front.Character, err error) { s.logger.Print("front.updateCharacter") - updateCharacterResponse, err := s.characterClient.updateCharacter(ctx, (*genCharacter.Character)(p)) + updateCharacterResponse, err := s.characterClient.updateCharacter(ctx, (*genCharacter.Character)(characterPayload)) if err != nil { return nil, err } @@ -226,15 +223,15 @@ func (s *frontsrvc) DeleteCharacter(ctx context.Context, name string) (err error } // AddItemToInventory implements addItemToInventory. -func (s *frontsrvc) AddItemToInventory(ctx context.Context, p *front.InventoryRecord) (err error) { +func (s *frontsrvc) AddItemToInventory(ctx context.Context, inventoryRecordPayload *front.InventoryRecord) (err error) { s.logger.Print("front.addItemToInventory") - err = s.checkItemAndCharacter(ctx, p) + err = s.checkItemAndCharacter(ctx, inventoryRecordPayload) if err != nil { return err } - _, err = s.inventoryClient.addItem(ctx, (*genInventory.InventoryRecord)(p)) + _, err = s.inventoryClient.addItem(ctx, (*genInventory.InventoryRecord)(inventoryRecordPayload)) if err != nil { return err } @@ -243,15 +240,15 @@ func (s *frontsrvc) AddItemToInventory(ctx context.Context, p *front.InventoryRe } // RemoveItemFromInventory implements removeItemFromInventory. -func (s *frontsrvc) RemoveItemFromInventory(ctx context.Context, p *front.InventoryRecord) (err error) { +func (s *frontsrvc) RemoveItemFromInventory(ctx context.Context, inventoryRecordPayload *front.InventoryRecord) (err error) { s.logger.Print("front.removeItemFromInventory") - err = s.checkItemAndCharacter(ctx, p) + err = s.checkItemAndCharacter(ctx, inventoryRecordPayload) if err != nil { return err } - _, err = s.inventoryClient.removeItem(ctx, (*genInventory.InventoryRecord)(p)) + _, err = s.inventoryClient.removeItem(ctx, (*genInventory.InventoryRecord)(inventoryRecordPayload)) if err != nil { return err } @@ -259,23 +256,19 @@ func (s *frontsrvc) RemoveItemFromInventory(ctx context.Context, p *front.Invent return } -func (s *frontsrvc) ListInventoryItems(ctx context.Context, payload *front.ListInventoryItemsPayload) (res []*front.Item, err error) { +func (s *frontsrvc) ListInventoryItems(ctx context.Context, listInventoryItemsPayload *front.ListInventoryItemsPayload) (res []*front.Item, err error) { listInventoryResponse, err := s.inventoryClient.listInventoryItems(ctx, - &genInventory.ListInventoryPayload{CharacterName: payload.CharacterName}) + &genInventory.ListInventoryPayload{CharacterName: listInventoryItemsPayload.CharacterName}) if err != nil { return nil, err } - itemNames := listInventoryResponse.([]string) - if len(itemNames) == 0 { - return - } - itemResponse, err := s.itemClient.listItems(ctx, &genItem.ListItemsPayload{NameFilter: itemNames}) + + items, err := s.getItemsByName(ctx, itemNames) if err != nil { return nil, err } - items := itemResponse.([]*genItem.Item) for _, value := range items { res = append(res, (*front.Item)(value)) } @@ -283,24 +276,42 @@ func (s *frontsrvc) ListInventoryItems(ctx context.Context, payload *front.ListI return } -func (s *frontsrvc) checkItemAndCharacter(ctx context.Context, payload *front.InventoryRecord) (err error) { - getItemResponse, err := s.itemClient.getItem(ctx, &genItem.GetItemPayload{Name: &payload.ItemName}) +func (s *frontsrvc) getCharactersUsingItem(ctx context.Context, itemName string) (characters []string, err error) { + characterResponse, err := s.inventoryClient.listCharactersWithItem(ctx, &genInventory.ListCharactersWithItemPayload{ItemName: &itemName}) + if err != nil { + return nil, err + } + + return characterResponse.([]string), nil +} + +func (s *frontsrvc) checkItemAndCharacter(ctx context.Context, inventoryRecord *front.InventoryRecord) (err error) { + getItemResponse, err := s.itemClient.getItem(ctx, &genItem.GetItemPayload{Name: &inventoryRecord.ItemName}) if err != nil { return err } if getItemResponse.(*genItem.Item) == nil { - return errors.New("item not found") + return front.MakeNotFound(fmt.Errorf("item '%s' not found", inventoryRecord.ItemName)) } getCharacterResponse, err := s.characterClient.getCharacter(ctx, - &genCharacter.GetCharacterPayload{Name: &payload.CharacterName}) + &genCharacter.GetCharacterPayload{Name: &inventoryRecord.CharacterName}) if err != nil { return err } if getCharacterResponse.(*genCharacter.Character) == nil { - return errors.New("character not found") + return front.MakeNotFound(fmt.Errorf("character '%s' not found", inventoryRecord.CharacterName)) } return } + +func (s *frontsrvc) getItemsByName(ctx context.Context, itemNames []string) (items []*genItem.Item, err error) { + itemResponse, err := s.itemClient.listItems(ctx, &genItem.ListItemsPayload{NameFilter: itemNames}) + if err != nil { + return nil, err + } + items = itemResponse.([]*genItem.Item) + return +}