package api import ( "github.com/gin-gonic/gin" "music-server/pkg/helpers" "music-server/pkg/models" "music-server/pkg/server" "net/http" ) type Music struct { } func NewMusic() *Music { return &Music{} } func (m *Music) GetSong(ctx *gin.Context) { song := ctx.Query("song") if song == "" { ctx.String(http.StatusBadRequest, "song can't be empty") } s := server.GetSong(song) helpers.SendSong(ctx, s) } func (m *Music) GetMusicFirst(ctx *gin.Context) { song := server.GetSoundCheckSong() helpers.SendSong(ctx, song) } func (m *Music) ResetMusic(ctx *gin.Context) { server.Reset() ctx.Status(http.StatusOK) } func (m *Music) GetRandomSong(ctx *gin.Context) { song := server.GetRandomSong() helpers.SendSong(ctx, song) } func (m *Music) GetRandomSongLowChance(ctx *gin.Context) { song := server.GetRandomSongLowChance() helpers.SendSong(ctx, song) } func (m *Music) GetSongInfo(ctx *gin.Context) { song := server.GetSongInfo() ctx.JSON(http.StatusOK, song) } func (m *Music) GetPlayedSongs(ctx *gin.Context) { songList := server.GetPlayedSongs() ctx.JSON(http.StatusOK, songList) } func (m *Music) GetNextSong(ctx *gin.Context) { song := server.GetNextSong() helpers.SendSong(ctx, song) } func (m *Music) GetPreviousSong(ctx *gin.Context) { song := server.GetPreviousSong() helpers.SendSong(ctx, song) } func (m *Music) GetAllGames(ctx *gin.Context) { gameList := server.GetAllGames() ctx.JSON(http.StatusOK, gameList) } func (m *Music) GetAllGamesRandom(ctx *gin.Context) { gameList := server.GetAllGamesRandom() ctx.JSON(http.StatusOK, gameList) } func (m *Music) PutPlayed(ctx *gin.Context) { var played models.Played if err := ctx.ShouldBindJSON(&played); err != nil { helpers.NewError(ctx, http.StatusBadRequest, err) return } server.SetPlayed(played.Song) ctx.Status(http.StatusOK) } func (m *Music) AddLatestToQue(ctx *gin.Context) { server.AddLatestToQue() ctx.Status(http.StatusOK) } func (m *Music) AddLatestPlayed(ctx *gin.Context) { server.AddLatestPlayed() ctx.Status(http.StatusOK) }