Added check if game not found

This commit is contained in:
2024-07-31 21:57:02 +02:00
parent 51a74a9ed1
commit 5616b51512
2 changed files with 15 additions and 7 deletions

View File

@@ -2,11 +2,13 @@ package db
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"github.com/jackc/pgtype"
"music-server/pkg/models" "music-server/pkg/models"
"os" "os"
"time" "time"
"github.com/jackc/pgtype"
) )
func GetGameName(gameId int) string { func GetGameName(gameId int) string {
@@ -20,17 +22,17 @@ func GetGameName(gameId int) string {
return gameName return gameName
} }
func GetGameById(gameId int) models.GameData { func GetGameById(gameId int) (models.GameData, error) {
var id, timesPlayed int var id, timesPlayed int
var numberOfSongs pgtype.Int4 var numberOfSongs pgtype.Int4
var gameName, path string var gameName, path string
var added, deleted, lastChanged, lastPlayed pgtype.Timestamp var added, deleted, lastChanged, lastPlayed pgtype.Timestamp
err := pool.QueryRow(context.Background(), err := pool.QueryRow(context.Background(),
"SELECT id, game_name, added, deleted, last_changed, path, times_played, last_played, number_of_songs "+ "SELECT id, game_name, added, deleted, last_changed, path, times_played, last_played, number_of_songs "+
"FROM game WHERE id = $1", gameId).Scan(&id, &gameName, &added, &deleted, &lastChanged, &path, &timesPlayed, &lastPlayed, &numberOfSongs) "FROM game WHERE id = $1 AND deleted IS NULL", gameId).Scan(&id, &gameName, &added, &deleted, &lastChanged, &path, &timesPlayed, &lastPlayed, &numberOfSongs)
if err != nil { if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err) _, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
return models.GameData{} return models.GameData{}, errors.New("Game not found")
} }
return models.GameData{ return models.GameData{
Id: id, Id: id,
@@ -42,7 +44,7 @@ func GetGameById(gameId int) models.GameData {
TimesPlayed: timesPlayed, TimesPlayed: timesPlayed,
LastPlayed: lastPlayed.Time, LastPlayed: lastPlayed.Time,
NumberOfSongs: numberOfSongs.Int, NumberOfSongs: numberOfSongs.Int,
} }, nil
} }
func SetGameDeletionDate() { func SetGameDeletionDate() {

View File

@@ -72,7 +72,7 @@ func GetRandomSongLowChance() string {
} }
} }
} }
song := getSongFromList(games) song := getSongFromList(listOfGames)
lastFetched = song lastFetched = song
return song.Path return song.Path
@@ -93,7 +93,13 @@ func GetRandomSongClassic() string {
var song models.SongData var song models.SongData
for !songFound { for !songFound {
song = listOfAllSongs[rand.Intn(len(listOfAllSongs))] song = listOfAllSongs[rand.Intn(len(listOfAllSongs))]
gameData := db.GetGameById(song.GameId) gameData, err := db.GetGameById(song.GameId)
if err != nil {
db.RemoveBrokenSong(song)
log.Println("Song not found, song '" + song.SongName + "' deleted from game '" + gameData.GameName + "' FileName: " + song.FileName)
continue
}
//Check if file exists and open //Check if file exists and open
openFile, err := os.Open(song.Path) openFile, err := os.Open(song.Path)