| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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.Listen()
- }
|