diff --git a/sevenkeys/database/cardstoragelocation.go b/sevenkeys/database/cardstoragelocation.go index 59d3905..848424f 100644 --- a/sevenkeys/database/cardstoragelocation.go +++ b/sevenkeys/database/cardstoragelocation.go @@ -1,6 +1,8 @@ package database -import "database/sql" +import ( + "database/sql" +) type CardStorageLocation struct { Id int @@ -11,14 +13,14 @@ type CardStorageLocation struct { } func GetLastPositionInBox(db *sql.DB, storageBox string) (int, error) { - query := "SELECT Position FROM CardStorageLocation WHERE StorageBox = ? ORDER BY Position DESC LIMIT 1" + query := "SELECT Position FROM CardStorageLocation WHERE StorageBox = ? ORDER BY Position DESC LIMIT 1;" var lastPosition int err := db.QueryRow(query, storageBox).Scan(&lastPosition) if err == sql.ErrNoRows { return 0, nil - } else { + } else if err != nil { return 0, err } diff --git a/sevenkeys/logic/storage.go b/sevenkeys/logic/storage.go index f518985..532d227 100644 --- a/sevenkeys/logic/storage.go +++ b/sevenkeys/logic/storage.go @@ -2,7 +2,6 @@ package logic import ( "database/sql" - "log" "sevenkeys/database" ) @@ -13,7 +12,6 @@ func StoreCard(db *sql.DB, storageLocation database.CardStorageLocation) error { } storageLocation.Position = lastPosition + 1 - log.Println(storageLocation.Position) err = database.InsertCardStorageLocation(db, storageLocation) if err != nil { diff --git a/sevenkeys/main.go b/sevenkeys/main.go index d37d224..c1e54f8 100644 --- a/sevenkeys/main.go +++ b/sevenkeys/main.go @@ -40,39 +40,53 @@ func main() { storageBox := logic.GetResponse("Enter storage box label:") source := logic.GetResponse("Enter source:") + + storageLocation := database.CardStorageLocation{ + StorageBox: storageBox, + Source: source, + } + searchOptions, err := logic.GetAllSearchOptions(db) logic.Check(err) + var selectedCardId int + var selectedCardSearchOption string = "None" for { /* screen.Clear() screen.MoveTopLeft() */ - fmt.Println("Storage location:", storageBox) - fmt.Println("Source:", source) - selectedCardPrintingId, selectedSearchOption, err := logic.Search(searchOptions) - logic.Check(err) + fmt.Println("Storage location:", storageBox, "|", "Source:", source) + fmt.Println("Selected card:", selectedCardSearchOption, "ID:", selectedCardId) - fmt.Println("Inserted card:", selectedSearchOption) - storageLocation := database.CardStorageLocation{ - CardPrintingId: selectedCardPrintingId, - StorageBox: storageBox, - Source: source, - } - err = logic.StoreCard(db, storageLocation) - logic.Check(err) - - nextAction := logic.GetResponse("[s]earch again/[r]epeat last insert/[q]uit:") - switch nextAction { + var action string + action = logic.GetResponse("[s]earch for card/[i]nsert selected card/[q]uit:") + switch action { case "s": + selectedCardId, selectedCardSearchOption, err = logic.Search(searchOptions) + logic.Check(err) + + storageLocation.CardPrintingId = selectedCardId + continue - case "r": + case "i": + if selectedCardId == 0 { + fmt.Println("No selected card, please search for one.") + continue + } + err = logic.StoreCard(db, storageLocation) logic.Check(err) + break case "q": os.Exit(0) + default: + fmt.Println("Not a valid command:", action) + break } + + fmt.Print("\n\n") } }