Add Cardtrader data during update
This commit is contained in:
parent
848754b509
commit
ceceb4722f
|
@ -0,0 +1,66 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"github.com/mtgban/go-mtgban/cardtrader"
|
||||
)
|
||||
|
||||
func InsertCardtraderBlueprint(db *sql.DB, blueprint cardtrader.Blueprint) error {
|
||||
query := `INSERT INTO CardtraderBlueprint (
|
||||
Id,
|
||||
CardtraderCategoryId,
|
||||
CardtraderExpansionId,
|
||||
Name,
|
||||
CollectorNumber
|
||||
) VALUES (
|
||||
?, ?, ?, ?, ?
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
Id = ?,
|
||||
CardtraderCategoryId = ?,
|
||||
CardtraderExpansionId = ?,
|
||||
Name = ?,
|
||||
CollectorNumber = ?;`
|
||||
|
||||
insert, err := db.Prepare(query)
|
||||
defer insert.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = insert.Exec(blueprint.Id,
|
||||
blueprint.CategoryId,
|
||||
blueprint.ExpansionId,
|
||||
blueprint.Name,
|
||||
blueprint.FixedProperties.Number,
|
||||
blueprint.Id,
|
||||
blueprint.CategoryId,
|
||||
blueprint.ExpansionId,
|
||||
blueprint.Name,
|
||||
blueprint.FixedProperties.Number)
|
||||
if err != nil {
|
||||
fmt.Println(blueprint.FixedProperties.Number)
|
||||
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() {
|
||||
}
|
||||
}
|
||||
*/
|
|
@ -0,0 +1,25 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
"github.com/mtgban/go-mtgban/cardtrader"
|
||||
)
|
||||
|
||||
func InsertCardtraderExpansion(db *sql.DB, expansion cardtrader.Expansion) error {
|
||||
query := `INSERT INTO CardtraderExpansion (Id, Code, Name) VALUES (?, ?, ?)
|
||||
ON DUPLICATE KEY UPDATE Id = ?, Code = ?, Name = ?;`
|
||||
|
||||
insert, err := db.Prepare(query)
|
||||
defer insert.Close()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
_, err = insert.Exec(expansion.Id, expansion.Code, expansion.Name, expansion.Id, expansion.Code, expansion.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
|
@ -2,7 +2,8 @@
|
|||
-- +goose StatementBegin
|
||||
CREATE TABLE IF NOT EXISTS CardtraderExpansion (
|
||||
Id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
ExpansionCode VARCHAR(20) NOT NULL
|
||||
Code VARCHAR(20) NOT NULL,
|
||||
Name VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS CardtraderBlueprint (
|
||||
|
@ -11,7 +12,7 @@ CREATE TABLE IF NOT EXISTS CardtraderBlueprint (
|
|||
CardtraderExpansionId INT NOT NULL,
|
||||
FOREIGN KEY (CardtraderExpansionId) REFERENCES CardtraderExpansion(Id),
|
||||
Name VARCHAR(255) NOT NULL,
|
||||
CollectorNumber VARCHAR(10) NOT NULL
|
||||
CollectorNumber VARCHAR(50) NOT NULL
|
||||
);
|
||||
-- +goose StatementEnd
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package logic
|
||||
|
||||
/*
|
||||
func GetAllBlueprints(db *sql.DB) ([]cardtrader.Blueprint, error) {
|
||||
blueprints, err := database.GetAllBlueprints(db)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return blueprints, nil
|
||||
}
|
||||
*/
|
|
@ -30,6 +30,7 @@ const (
|
|||
DeckSubcommand string = "deck"
|
||||
|
||||
GetProductIdSubcommand string = "products"
|
||||
MatchSubcommands string = "match"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -48,8 +49,11 @@ func main() {
|
|||
|
||||
switch flag.Args()[0] {
|
||||
case UpdateSubcommand:
|
||||
update.UpdateScryfallData(db)
|
||||
//update.UpdateCardtraderData(config.CardtraderToken)
|
||||
err := update.UpdateScryfallData(db)
|
||||
logic.Check(err)
|
||||
|
||||
err = update.UpdateCardtraderData(db, config.CardtraderToken)
|
||||
logic.Check(err)
|
||||
break
|
||||
case CreateStorageAreaSubcommand:
|
||||
createStorageCmd := flag.NewFlagSet(CreateStorageAreaSubcommand, flag.ExitOnError)
|
||||
|
@ -248,6 +252,15 @@ func main() {
|
|||
fmt.Printf("x%d\n", product.Quantity)
|
||||
}
|
||||
break
|
||||
/*
|
||||
case MatchSubcommands:
|
||||
cardLocations, err := logic.GetAllStorageSearchOptions(db)
|
||||
logic.Check(err)
|
||||
|
||||
blueprints, err := logic.GetAllBlueprints(db)
|
||||
logic.Check(err)
|
||||
break
|
||||
*/
|
||||
default:
|
||||
fmt.Fprintf(os.Stderr, "Unrecognized subcommand: %s\n", os.Args[1])
|
||||
break
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
package update
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"sevenkeys/database"
|
||||
|
||||
"github.com/mtgban/go-mtgban/cardtrader"
|
||||
)
|
||||
|
||||
func UpdateCardtraderData(db *sql.DB, token string) error {
|
||||
client := cardtrader.NewCTAuthClient(token)
|
||||
|
||||
expansions, err := client.Expansions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, expansion := range expansions {
|
||||
if expansion.GameId != cardtrader.GameIdMagic {
|
||||
continue
|
||||
}
|
||||
|
||||
err = database.InsertCardtraderExpansion(db, expansion)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
blueprints, err := client.Blueprints(expansion.Id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, blueprint := range blueprints {
|
||||
err = database.InsertCardtraderBlueprint(db, blueprint)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue