Fixed some bugs and added Random Classic
This commit is contained in:
@@ -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, ×Played, &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)
|
||||
|
||||
@@ -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, ×Played)
|
||||
@@ -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
46
pkg/db/songList.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user