| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package server
- import (
- "fmt"
- "log"
- "net/http"
- "github.com/felamaslen/gmus-backend/pkg/config"
- "github.com/felamaslen/gmus-backend/pkg/logger"
- "github.com/go-redis/redis"
- "github.com/gorilla/mux"
- "github.com/rs/cors"
- )
- func (s *Server) Init() {
- s.l = logger.CreateLogger(config.GetConfig().LogLevel)
- s.router = mux.NewRouter()
- healthRoutes(s.l, s.router)
- }
- func (s *Server) Listen() {
- conf := config.GetConfig()
- handler := cors.New(cors.Options{
- AllowedOrigins: conf.AllowedOrigins,
- AllowCredentials: true,
- }).Handler(s.router)
- s.l.Info("Starting server on %s:%d\n", conf.Host, conf.Port)
- log.Fatal(http.ListenAndServe(fmt.Sprintf("%s:%d", conf.Host, conf.Port), handler))
- }
- func StartServer() {
- conf := config.GetConfig()
- l := logger.CreateLogger(conf.LogLevel)
- server := Server{}
- server.Init()
- rdb := redis.NewClient(&redis.Options{Addr: conf.RedisUrl})
- defer rdb.Close()
- initPubsub(l, rdb, server.router)
- server.router.Path("/stream").Methods("GET").HandlerFunc(routeHandler(l, rdb, streamSong))
- server.router.Path("/artists").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchArtists))
- server.router.Path("/albums").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchAlbums))
- server.router.Path("/songs").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchSongs))
- server.router.Path("/song-info").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchSongInfo))
- server.router.Path("/multi-song-info").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchMultiSongInfo))
- server.router.Path("/next-song").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchNextSong))
- server.router.Path("/prev-song").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchPrevSong))
- server.router.Path("/shuffle-song").Methods("GET").HandlerFunc(routeHandler(l, rdb, routeFetchShuffledSong))
- server.Listen()
- }
|