TheMathemagicians/sevenkeys/logic/updatecheck.go

33 lines
856 B
Go
Raw Normal View History

2024-05-28 14:29:13 +00:00
package logic
import (
"database/sql"
"sevenkeys/database"
"sevenkeys/logic/scryfall"
"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
}