39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
package database
|
|
|
|
import "database/sql"
|
|
|
|
type LocateCardResult struct {
|
|
CardName string
|
|
SetCode string
|
|
IsFoil bool
|
|
IsPromo bool
|
|
CollectorNumber string
|
|
Language string
|
|
StorageAreaType string
|
|
StorageAreaName string
|
|
Position int
|
|
}
|
|
|
|
func GetLocateCardResultsByCardName(db *sql.DB, cardName string) ([]LocateCardResult, error) {
|
|
var results []LocateCardResult
|
|
|
|
query := "SELECT CardPrinting.Name, CardPrinting.SetCode, CardPrinting.IsFoil, CardPrinting.IsPromo, CardPrinting.CollectorNumber, CardPrinting.Language, StorageArea.StorageType, StorageArea.Name, CardLocation.Position FROM CardLocation JOIN CardPrinting ON CardLocation.CardPrintingId = CardPrinting.Id JOIN StorageArea ON CardLocation.StorageAreaId = StorageArea.Id WHERE CardPrinting.Name = ?;"
|
|
rows, err := db.Query(query, cardName)
|
|
defer rows.Close()
|
|
if err != nil {
|
|
return results, err
|
|
}
|
|
|
|
var result LocateCardResult
|
|
for rows.Next() {
|
|
err := rows.Scan(&result.CardName, &result.SetCode, &result.IsFoil, &result.IsPromo, &result.CollectorNumber, &result.Language, &result.StorageAreaType, &result.StorageAreaName, &result.Position)
|
|
if err != nil {
|
|
return results, err
|
|
}
|
|
|
|
results = append(results, result)
|
|
}
|
|
|
|
return results, nil
|
|
}
|