TheMathemagicians/sevenkeys/database/cardtraderblueprint.go

75 lines
1.5 KiB
Go

package database
import (
"database/sql"
"github.com/mtgban/go-mtgban/cardtrader"
)
func InsertCardtraderBlueprint(db *sql.DB, blueprint cardtrader.Blueprint) error {
query := `INSERT INTO CardtraderBlueprint (
Id,
ScryfallCardId,
CardtraderCategoryId,
CardtraderExpansionId,
Name,
CollectorNumber
) VALUES (
?, ?, ?, ?, ?, ?
)
ON DUPLICATE KEY UPDATE
Id = ?,
ScryfallCardId = ?,
CardtraderCategoryId = ?,
CardtraderExpansionId = ?,
Name = ?,
CollectorNumber = ?;`
insert, err := db.Prepare(query)
defer insert.Close()
if err != nil {
return err
}
_, err = insert.Exec(blueprint.Id,
blueprint.ScryfallId,
blueprint.CategoryId,
blueprint.ExpansionId,
blueprint.Name,
blueprint.FixedProperties.Number,
blueprint.Id,
blueprint.ScryfallId,
blueprint.CategoryId,
blueprint.ExpansionId,
blueprint.Name,
blueprint.FixedProperties.Number)
if err != nil {
return err
}
return nil
}
func GetAllCardtraderBlueprints(db *sql.DB) ([]cardtrader.Blueprint, error) {
var blueprints []cardtrader.Blueprint
query := `SELECT * FROM CardtraderBlueprint;`
rows, err := db.Query(query)
defer rows.Close()
if err != nil {
return blueprints, err
}
var blueprint cardtrader.Blueprint
for rows.Next() {
err := rows.Scan(&blueprint.Id, &blueprint.CategoryId, &blueprint.ExpansionId, &blueprint.Name, &blueprint.FixedProperties.Number)
if err != nil {
return blueprints, err
}
blueprints = append(blueprints, blueprint)
}
return blueprints, nil
}