Fixed some bugs and added Random Classic

This commit is contained in:
2024-07-28 15:58:12 +02:00
parent 59f1e2c75c
commit 51a74a9ed1
12 changed files with 152 additions and 16 deletions

View File

@@ -20,9 +20,34 @@ func GetGameName(gameId int) string {
return gameName
}
func GetGameById(gameId int) models.GameData {
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)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
return models.GameData{}
}
return models.GameData{
Id: id,
GameName: gameName,
Added: added.Time,
Deleted: deleted.Time,
LastChanged: lastChanged.Time,
Path: path,
TimesPlayed: timesPlayed,
LastPlayed: lastPlayed.Time,
NumberOfSongs: numberOfSongs.Int,
}
}
func SetGameDeletionDate() {
_, err := pool.Exec(context.Background(),
"UPDATE game SET deleted=$1", time.Now())
"UPDATE game SET deleted=$1 WHERE deleted IS NULL", time.Now())
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "Exec failed: %v\n", err)
}
@@ -94,7 +119,7 @@ func InsertGameWithExistingId(id int, name string, path string) {
func FindAllGames() []models.GameData {
rows, err := pool.Query(context.Background(),
"SELECT id, game_name, added, deleted, last_changed, path, times_played, last_played, number_of_songs "+
"FROM game "+
"FROM game WHERE deleted IS NULL"+
"ORDER BY game_name")
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)

View File

@@ -24,8 +24,8 @@ func ClearSongs(gameId int) {
func AddSong(song models.SongData) {
_, err := pool.Exec(context.Background(),
"INSERT INTO song(game_id, song_name, path) VALUES ($1, $2, $3)",
song.GameId, song.SongName, song.Path)
"INSERT INTO song(game_id, song_name, path, file_name) VALUES ($1, $2, $3, $4)",
song.GameId, song.SongName, song.Path, song.FileName)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "Exec failed: %v\n", err)
}
@@ -33,7 +33,7 @@ func AddSong(song models.SongData) {
func FindSongsFromGame(id int) []models.SongData {
rows, err := pool.Query(context.Background(),
"SELECT song_name, path, times_played FROM song WHERE game_id = $1", id)
"SELECT song_name, path, file_name, times_played FROM song WHERE game_id = $1", id)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
return nil
@@ -43,6 +43,7 @@ func FindSongsFromGame(id int) []models.SongData {
for rows.Next() {
var songName string
var path string
var fileName string
var timesPlayed int
err := rows.Scan(&songName, &path, &timesPlayed)
@@ -54,6 +55,7 @@ func FindSongsFromGame(id int) []models.SongData {
GameId: id,
SongName: songName,
Path: path,
FileName: fileName,
TimesPlayed: timesPlayed,
})
}

46
pkg/db/songList.go Normal file
View File

@@ -0,0 +1,46 @@
package db
import (
"context"
"fmt"
"music-server/pkg/models"
"os"
"time"
)
func InsertSongInList(song models.SongListData) {
err := pool.QueryRow(context.Background(),
`INSERT INTO song_list (match_date, match_id, song_no, game_name, song_name) VALUES ($1, $2, $3, $4, $5)`,
song.MatchDate, song.MatchId, song.SongNo, song.GameName, song.SongName)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
}
}
func GetSongList(matchId int) []models.SongListData {
rows, err := pool.Query(context.Background(),
"SELECT match_date, match_id, song_no, game_name, song_name "+
"FROM song_list WHERE match_date = $1"+
"ORDER BY song_no DESC", matchId)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
}
var songList []models.SongListData
for rows.Next() {
var matchId, songNo int
var matchDate time.Time
var gameName, songName string
err := rows.Scan(&matchDate, &matchId, &songNo, &gameName, &songName)
if err != nil {
_, _ = fmt.Fprintf(os.Stderr, "Scan failed: %v\n", err)
}
songList = append(songList, models.SongListData{
MatchDate: matchDate,
MatchId: matchId,
SongNo: songNo,
GameName: gameName,
SongName: songName,
})
}
return songList
}