package server import ( "music-server/internal/backend" "music-server/internal/helpers" "music-server/pkg/models" "net/http" "github.com/labstack/echo" ) type MusicHandler struct { } func NewMusicHandler() *MusicHandler { return &MusicHandler{} } func (m *MusicHandler) GetSong(ctx echo.Context) error { song := ctx.QueryParam("song") if song == "" { return ctx.String(http.StatusBadRequest, "song can't be empty") } s := backend.GetSong(song) return helpers.SendSong(ctx, s) } func (m *MusicHandler) GetSoundCheckSong(ctx echo.Context) error { song := backend.GetSoundCheckSong() return helpers.SendSong(ctx, song) } func (m *MusicHandler) ResetMusic(ctx echo.Context) error { backend.Reset() return ctx.NoContent(http.StatusOK) } func (m *MusicHandler) GetRandomSong(ctx echo.Context) error { song := backend.GetRandomSong() return helpers.SendSong(ctx, song) } func (m *MusicHandler) GetRandomSongLowChance(ctx echo.Context) error { song := backend.GetRandomSongLowChance() return helpers.SendSong(ctx, song) } func (m *MusicHandler) GetRandomSongClassic(ctx echo.Context) error { song := backend.GetRandomSongClassic() return helpers.SendSong(ctx, song) } func (m *MusicHandler) GetSongInfo(ctx echo.Context) error { song := backend.GetSongInfo() return ctx.JSON(http.StatusOK, song) } func (m *MusicHandler) GetPlayedSongs(ctx echo.Context) error { songList := backend.GetPlayedSongs() return ctx.JSON(http.StatusOK, songList) } func (m *MusicHandler) GetNextSong(ctx echo.Context) error { song := backend.GetNextSong() return helpers.SendSong(ctx, song) } func (m *MusicHandler) GetPreviousSong(ctx echo.Context) error { song := backend.GetPreviousSong() return helpers.SendSong(ctx, song) } func (m *MusicHandler) GetAllGames(ctx echo.Context) error { gameList := backend.GetAllGames() return ctx.JSON(http.StatusOK, gameList) } func (m *MusicHandler) GetAllGamesRandom(ctx echo.Context) error { gameList := backend.GetAllGamesRandom() return ctx.JSON(http.StatusOK, gameList) } func (m *MusicHandler) PutPlayed(ctx echo.Context) error { var played models.Played err := ctx.Bind(&played) if err != nil { //helpers.NewError(ctx, http.StatusBadRequest, err) return ctx.JSON(http.StatusBadRequest, err) } backend.SetPlayed(played.Song) return ctx.NoContent(http.StatusOK) } func (m *MusicHandler) AddLatestToQue(ctx echo.Context) error { backend.AddLatestToQue() return ctx.NoContent(http.StatusOK) } func (m *MusicHandler) AddLatestPlayed(ctx echo.Context) error { backend.AddLatestPlayed() return ctx.NoContent(http.StatusOK) }