package operations import ( "database/sql" "fmt" "sevenkeys/database/entities" "strings" ) func GetCardSearchOptions(db *sql.DB) ([]string, error) { var searchOptions []string query := "SELECT Id, Name, SetCode, HasFoil, HasNonFoil, CollectorNumber, Language FROM CardPrinting;" rows, err := db.Query(query) defer rows.Close() if err != nil { return searchOptions, err } var printing entities.CardPrinting for rows.Next() { err := rows.Scan(&printing.Id, &printing.Name, &printing.SetCode, &printing.HasFoil, &printing.HasNonFoil, &printing.CollectorNumber, &printing.Language) if err != nil { return searchOptions, err } // TODO: Make this configurable to be able to handle non-English cards if printing.Language != "en" { continue } if printing.HasNonFoil { searchOption := fmt.Sprintf("%s | %s (%s %s)", printing.Id, printing.Name, strings.ToUpper(printing.SetCode), printing.CollectorNumber) searchOptions = append(searchOptions, searchOption) } if printing.HasFoil { searchOption := fmt.Sprintf("%s | %s (%s %s) FOIL", printing.Id, printing.Name, strings.ToUpper(printing.SetCode), printing.CollectorNumber) searchOptions = append(searchOptions, searchOption) } } return searchOptions, nil }