diff --git a/sevenkeys/cli/response.go b/sevenkeys/cli/response.go index b03898a..321589b 100644 --- a/sevenkeys/cli/response.go +++ b/sevenkeys/cli/response.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "os" + "sevenkeys/logic" "strings" ) @@ -22,3 +23,16 @@ func GetYesNoResponse(prompt string) bool { response := GetStringResponse(prompt) return strings.ToUpper(response) == "Y" } + +func GetTriadicResponse(prompt string) logic.Triadic { + response := GetStringResponse(prompt) + + switch strings.ToUpper(response) { + case "Y": + return logic.True + case "N": + return logic.False + default: + return logic.Either + } +} diff --git a/sevenkeys/cli/stashui.go b/sevenkeys/cli/stashui.go index 6046fca..cef6a4f 100644 --- a/sevenkeys/cli/stashui.go +++ b/sevenkeys/cli/stashui.go @@ -24,6 +24,13 @@ var ( searchOptions logic.SearchOptions ) +func getSearchCriteria() { + searchCriteria.SetCode = GetStringResponse("Set code:") + searchCriteria.Foil = GetTriadicResponse("Foil (y/n/E):") + searchCriteria.Promo = GetTriadicResponse("Promo (y/n/E):") + searchCriteria.Language = GetStringResponse("Language:") +} + func getSearchOptions(db *sql.DB) { if searchOptions == nil { fmt.Println("LOADING") @@ -96,6 +103,9 @@ func StashCliLoop(db *sql.DB) { case "storage": GetStorageOptions() break + case "criteria": + getSearchCriteria() + break case "search": getSearchOptions(db) var err error