TheMathemagicians/sevenkeys/database/scryfallcard.go

79 lines
1.6 KiB
Go

package database
import (
"database/sql"
)
type ScryfallCard struct {
Id string
Name string
ScryfallSetCode string
HasFoilPrinting bool
IsPromo bool
CollectorNumber string
ImageUrl string
Language string
}
func InsertScryfallCard(db *sql.DB, scryfallCard ScryfallCard) error {
query := `INSERT INTO ScryfallCard (
Id,
Name,
ScryfallSetCode,
HasFoilPrinting,
IsPromo,
CollectorNumber,
ImageUrl,
Language)
VALUES (?, ?, ?, ?, ?, ?, ?, ?);`
insert, err := db.Prepare(query)
defer insert.Close()
if err != nil {
return err
}
_, err = insert.Exec(scryfallCard.Id,
scryfallCard.Name,
scryfallCard.ScryfallSetCode,
scryfallCard.HasFoilPrinting,
scryfallCard.IsPromo,
scryfallCard.CollectorNumber,
scryfallCard.ImageUrl,
scryfallCard.Language)
if err != nil {
return err
}
return nil
}
func GetAllScryfallCards(db *sql.DB) ([]ScryfallCard, error) {
var scryfallCards []ScryfallCard
query := `SELECT Id, Name, ScryfallSetCode, HasFoilPrinting, IsPromo, CollectorNumber, Language FROM CardPrinting;`
rows, err := db.Query(query)
defer rows.Close()
if err != nil {
return scryfallCards, err
}
var scryfallCard ScryfallCard
for rows.Next() {
err := rows.Scan(&scryfallCard.Id,
&scryfallCard.Name,
&scryfallCard.ScryfallSetCode,
&scryfallCard.HasFoilPrinting,
&scryfallCard.IsPromo,
&scryfallCard.CollectorNumber,
&scryfallCard.Language)
if err != nil {
return scryfallCards, err
}
scryfallCards = append(scryfallCards, scryfallCard)
}
return scryfallCards, nil
}