2024-04-28 14:13:47 +00:00
|
|
|
package operations
|
|
|
|
|
|
|
|
import (
|
|
|
|
"database/sql"
|
2024-05-27 16:45:22 +00:00
|
|
|
"fmt"
|
2024-04-28 14:13:47 +00:00
|
|
|
"sevenkeys/database/entities"
|
2024-05-27 16:45:22 +00:00
|
|
|
"strings"
|
2024-04-28 14:13:47 +00:00
|
|
|
)
|
|
|
|
|
2024-05-27 16:45:22 +00:00
|
|
|
func GetCardSearchOptions(db *sql.DB) ([]string, error) {
|
|
|
|
var searchOptions []string
|
|
|
|
|
|
|
|
query := "SELECT Id, Name, SetCode, HasFoil, HasNonFoil, CollectorNumber, Language FROM CardPrinting;"
|
2024-05-27 12:29:00 +00:00
|
|
|
rows, err := db.Query(query)
|
|
|
|
defer rows.Close()
|
|
|
|
if err != nil {
|
2024-05-27 16:45:22 +00:00
|
|
|
return searchOptions, err
|
2024-05-27 12:29:00 +00:00
|
|
|
}
|
|
|
|
|
2024-05-27 16:45:22 +00:00
|
|
|
var printing entities.CardPrinting
|
2024-05-27 12:29:00 +00:00
|
|
|
for rows.Next() {
|
2024-05-27 16:45:22 +00:00
|
|
|
err := rows.Scan(&printing.Id,
|
|
|
|
&printing.Name,
|
|
|
|
&printing.SetCode,
|
|
|
|
&printing.HasFoil,
|
|
|
|
&printing.HasNonFoil,
|
|
|
|
&printing.CollectorNumber,
|
|
|
|
&printing.Language)
|
2024-05-27 12:29:00 +00:00
|
|
|
if err != nil {
|
2024-05-27 16:45:22 +00:00
|
|
|
return searchOptions, err
|
|
|
|
}
|
|
|
|
|
|
|
|
// TODO: Make this configurable to be able to handle non-English cards
|
|
|
|
if printing.Language != "en" {
|
|
|
|
continue
|
2024-05-27 12:29:00 +00:00
|
|
|
}
|
|
|
|
|
2024-05-27 16:45:22 +00:00
|
|
|
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)
|
|
|
|
}
|
2024-05-27 12:29:00 +00:00
|
|
|
}
|
|
|
|
|
2024-05-27 16:45:22 +00:00
|
|
|
return searchOptions, nil
|
2024-05-27 12:29:00 +00:00
|
|
|
}
|