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 }