diff --git a/sevenkeys/database/operations/inserts.go b/sevenkeys/database/operations/inserts.go index 71dd4e7..a07bc5d 100644 --- a/sevenkeys/database/operations/inserts.go +++ b/sevenkeys/database/operations/inserts.go @@ -46,3 +46,21 @@ func InsertOrUpdateSet(db *sql.DB, set types.Set) error { return nil } + +func InsertCard(db *sql.DB, card types.Card) error { + query := `INSERT INTO CardPrinting + (Id, Name, SetCode, HasFoil, HasNonFoil, IsReserved, IsRacist, IsPromo, CollectorNumber, Language) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);` + + insert, err := db.Prepare(query) + if err != nil { + return err + } + + _, err = insert.Exec(card.Id, card.Name, card.Set, card.Foil, card.NonFoil, card.Reserved, card.ContentWarning, card.Promo, card.CollectorNumber, card.Language) + if err != nil { + return err + } + + return nil +} diff --git a/sevenkeys/database/operations/selects.go b/sevenkeys/database/operations/selects.go index e69a887..6f57562 100644 --- a/sevenkeys/database/operations/selects.go +++ b/sevenkeys/database/operations/selects.go @@ -22,7 +22,7 @@ func GetCacheTimestampByType(db *sql.DB, cacheType string) (time.Time, error) { err := db.QueryRow(query, cacheType).Scan(×tamp) if err == sql.ErrNoRows { - return time.Unix(0, 0), err + return time.Unix(0, 0), nil } stamp, err := time.Parse("2006-01-02 15:04:05", timestamp) diff --git a/sevenkeys/main.go b/sevenkeys/main.go index 324a629..1d4fe9c 100644 --- a/sevenkeys/main.go +++ b/sevenkeys/main.go @@ -115,6 +115,17 @@ func cacheAllCardsFile(db *sql.DB, uri string, updatedAtTimestamp time.Time) err return nil } +func importCards(db *sql.DB, cards []types.Card) error { + for _, card := range cards { + err := operations.InsertCard(db, card) + if err != nil { + return err + } + } + + return nil +} + func main() { log.Println("Connecting to database...") db := database.GetDatabaseFromConfig("config.json") @@ -169,7 +180,7 @@ func main() { log.Printf("Unmarshaled file.") log.Printf("Importing card data into database...") - err = operations.InsertCards(db, allCards) + err = importCards(db, allCards) check(err) log.Printf("Imported card data.") } diff --git a/sevenkeys/sql/createdb.sql b/sevenkeys/sql/createdb.sql index b1e6510..824c43a 100644 --- a/sevenkeys/sql/createdb.sql +++ b/sevenkeys/sql/createdb.sql @@ -19,8 +19,8 @@ CREATE TABLE IF NOT EXISTS CardPrinting ( Name VARCHAR(150) NOT NULL, SetCode VARCHAR(6) NOT NULL, FOREIGN KEY (SetCode) REFERENCES ExpansionSet(SetCode), - HasNonFoil BOOLEAN NOT NULL, HasFoil BOOLEAN NOT NULL, + HasNonFoil BOOLEAN NOT NULL, IsReserved BOOLEAN NOT NULL, IsRacist BOOLEAN NOT NULL, IsPromo BOOLEAN NOT NULL,