RestApiv2/internal/restserver/restserver.go

62 lines
1.1 KiB
Go
Raw Normal View History

package restserver
import (
"net/http"
2022-12-12 20:34:00 +03:00
"git.ukamnya.ru/stulyaganov/RestApi/internal/bd"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
)
type RestServer struct {
config *Config
logger *logrus.Logger
router *mux.Router
2022-12-12 20:34:00 +03:00
db *bd.Bd
}
func New(config *Config) *RestServer {
return &RestServer{
config: config,
logger: logrus.New(),
router: mux.NewRouter(),
}
}
func (r *RestServer) Start() error {
if err := r.configureLogger(); err != nil {
return err
}
2022-12-12 20:34:00 +03:00
if err := r.configurebd(); err != nil {
return err
}
r.configureRouterFilms()
2023-03-30 23:12:39 +03:00
r.configureRouterSiries()
r.configureRouterUser()
r.logger.Info("Starting Server")
r.logger.Info("Listen server on ", r.config.BindPort, " Port")
return http.ListenAndServe(r.config.BindPort, r.router)
}
func (r *RestServer) configureLogger() error {
level, err := logrus.ParseLevel(r.config.LogLevel)
if err != nil {
return err
}
r.logger.SetLevel(level)
return nil
}
2022-12-12 20:34:00 +03:00
func (r *RestServer) configurebd() error {
dataBase := bd.New(r.config.DB)
if err := dataBase.Open(); err != nil {
return err
}
r.db = dataBase
return nil
}