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 (
"context"
"errors"
"fmt"
"github.com/jackc/pgtype"
"music-server/pkg/models"
"os"
"time"
"github.com/jackc/pgtype"
)
func GetGameName(gameId int) string {
@@ -20,17 +22,17 @@ func GetGameName(gameId int) string {
return gameName
}
func GetGameById(gameId int) models.GameData {
func GetGameById(gameId int) (models.GameData, error) {
var id, timesPlayed int
var numberOfSongs pgtype.Int4
var gameName, path string
var added, deleted, lastChanged, lastPlayed pgtype.Timestamp
err := pool.QueryRow(context.Background(),
"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 {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
return models.GameData{}
return models.GameData{}, errors.New("Game not found")
}
return models.GameData{
Id: id,
@@ -42,7 +44,7 @@ func GetGameById(gameId int) models.GameData {
TimesPlayed: timesPlayed,
LastPlayed: lastPlayed.Time,
NumberOfSongs: numberOfSongs.Int,
}
}, nil
}
func SetGameDeletionDate() {

View File

@@ -72,7 +72,7 @@ func GetRandomSongLowChance() string {
}
}
}
song := getSongFromList(games)
song := getSongFromList(listOfGames)
lastFetched = song
return song.Path
@@ -93,7 +93,13 @@ func GetRandomSongClassic() string {
var song models.SongData
for !songFound {
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
openFile, err := os.Open(song.Path)