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
|
-- +goose StatementBegin
|
||||||
CREATE TABLE IF NOT EXISTS CardtraderExpansion (
|
CREATE TABLE IF NOT EXISTS CardtraderExpansion (
|
||||||
Id INT PRIMARY KEY AUTO_INCREMENT,
|
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 (
|
CREATE TABLE IF NOT EXISTS CardtraderBlueprint (
|
||||||
|
@ -11,7 +12,7 @@ CREATE TABLE IF NOT EXISTS CardtraderBlueprint (
|
||||||
CardtraderExpansionId INT NOT NULL,
|
CardtraderExpansionId INT NOT NULL,
|
||||||
FOREIGN KEY (CardtraderExpansionId) REFERENCES CardtraderExpansion(Id),
|
FOREIGN KEY (CardtraderExpansionId) REFERENCES CardtraderExpansion(Id),
|
||||||
Name VARCHAR(255) NOT NULL,
|
Name VARCHAR(255) NOT NULL,
|
||||||
CollectorNumber VARCHAR(10) NOT NULL
|
CollectorNumber VARCHAR(50) NOT NULL
|
||||||
);
|
);
|
||||||
-- +goose StatementEnd
|
-- +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"
|
DeckSubcommand string = "deck"
|
||||||
|
|
||||||
GetProductIdSubcommand string = "products"
|
GetProductIdSubcommand string = "products"
|
||||||
|
MatchSubcommands string = "match"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -48,8 +49,11 @@ func main() {
|
||||||
|
|
||||||
switch flag.Args()[0] {
|
switch flag.Args()[0] {
|
||||||
case UpdateSubcommand:
|
case UpdateSubcommand:
|
||||||
update.UpdateScryfallData(db)
|
err := update.UpdateScryfallData(db)
|
||||||
//update.UpdateCardtraderData(config.CardtraderToken)
|
logic.Check(err)
|
||||||
|
|
||||||
|
err = update.UpdateCardtraderData(db, config.CardtraderToken)
|
||||||
|
logic.Check(err)
|
||||||
break
|
break
|
||||||
case CreateStorageAreaSubcommand:
|
case CreateStorageAreaSubcommand:
|
||||||
createStorageCmd := flag.NewFlagSet(CreateStorageAreaSubcommand, flag.ExitOnError)
|
createStorageCmd := flag.NewFlagSet(CreateStorageAreaSubcommand, flag.ExitOnError)
|
||||||
|
@ -248,6 +252,15 @@ func main() {
|
||||||
fmt.Printf("x%d\n", product.Quantity)
|
fmt.Printf("x%d\n", product.Quantity)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
|
/*
|
||||||
|
case MatchSubcommands:
|
||||||
|
cardLocations, err := logic.GetAllStorageSearchOptions(db)
|
||||||
|
logic.Check(err)
|
||||||
|
|
||||||
|
blueprints, err := logic.GetAllBlueprints(db)
|
||||||
|
logic.Check(err)
|
||||||
|
break
|
||||||
|
*/
|
||||||
default:
|
default:
|
||||||
fmt.Fprintf(os.Stderr, "Unrecognized subcommand: %s\n", os.Args[1])
|
fmt.Fprintf(os.Stderr, "Unrecognized subcommand: %s\n", os.Args[1])
|
||||||
break
|
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