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 }