TheMathemagicians/sevenkeys/logic/update.go

43 lines
1022 B
Go
Raw Normal View History

2024-05-28 14:29:13 +00:00
package logic
import (
"database/sql"
2024-05-28 14:38:30 +00:00
"fmt"
2024-05-28 14:29:13 +00:00
"sevenkeys/database"
"sevenkeys/logic/scryfall"
2024-05-28 14:38:30 +00:00
"strings"
2024-05-28 14:29:13 +00:00
"time"
)
func CheckForUpdates(db *sql.DB) (bool, error) {
cachedFileTimestampStr, err := database.GetCacheTimestampByType(db, database.CacheTypeAllCardsBulkData)
if err == sql.ErrNoRows {
return true, nil
} else if err != nil {
return false, err
}
cachedFileTimestamp, err := time.Parse("2006-01-02 15:04:05", cachedFileTimestampStr)
allCardsBulkData, err := scryfall.GetBulkDataByType(scryfall.BulkDataTypeAllCards)
if err != nil {
return false, err
}
bulkCardsUpdatedTimestamp, err := time.Parse(scryfall.ScryfallTimestampFormat, allCardsBulkData.UpdatedAt)
if err != nil {
return false, err
}
bulkCardsUpdatedTimestamp = bulkCardsUpdatedTimestamp.Truncate(time.Second)
return bulkCardsUpdatedTimestamp.After(cachedFileTimestamp), nil
}
2024-05-28 14:38:30 +00:00
func ConfirmUpdate() bool {
fmt.Print("Run update? (y/N) ")
var response string
fmt.Scan(&response)
return strings.ToUpper(response) == "Y"
}