Advertisement
PaulPaulAga

Untitled

Apr 9th, 2021
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.71 KB | None | 0 0
  1. package server
  2.  
  3. import (
  4.     "Redioteka/internal/pkg/database"
  5.     "Redioteka/internal/pkg/middlewares"
  6.     _movieHandler "Redioteka/internal/pkg/movie/delivery/http"
  7.     _movieRepository "Redioteka/internal/pkg/movie/repository"
  8.     _movieUsecase "Redioteka/internal/pkg/movie/usecase"
  9.     _userHandler "Redioteka/internal/pkg/user/delivery/http"
  10.     _userRepository "Redioteka/internal/pkg/user/repository"
  11.     _userUsecase "Redioteka/internal/pkg/user/usecase"
  12.     "Redioteka/internal/pkg/utils/log"
  13.     "Redioteka/internal/pkg/utils/session"
  14.     "fmt"
  15.     "github.com/gorilla/mux"
  16.     "net/http"
  17. )
  18.  
  19. func RunServer(addr string) {
  20.     r := mux.NewRouter()
  21.     s := r.PathPrefix("/api").Subrouter()
  22.  
  23.     middL := middlewares.InitMiddleware()
  24.     r.Use(middL.PanicRecoverMiddleware)
  25.     s.Use(middL.CORSMiddleware)
  26.     s.Use(middL.LoggingMiddleware)
  27.  
  28.     //db := database.Connect()
  29.     userRepo := _userRepository.NewMapUserRepository()
  30.     movieRepo := _movieRepository.NewMapMovieRepository()
  31.  
  32.     userUsecase := _userUsecase.NewUserUsecase(userRepo)
  33.     movieUsecase := _movieUsecase.NewMovieUsecase(movieRepo)
  34.  
  35.     _userHandler.NewUserHandlers(s, userUsecase)
  36.     _movieHandler.NewMovieHandlers(s, movieUsecase)
  37.  
  38.     // Static files
  39.     fileRouter := r.PathPrefix("/static").Subrouter()
  40.     NewFileHandler(fileRouter)
  41.  
  42.     server := http.Server{
  43.         Addr:    addr,
  44.         Handler: r,
  45.     }
  46.  
  47.     log.Log.Debug(fmt.Sprint("starting server at ", addr))
  48.  
  49.     //sigs := make(chan os.Signal, 1)
  50.     //signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
  51.     //go func() {
  52.     //  <-sigs
  53.     //  closeConnections(db)
  54.     //  os.Exit(0)
  55.     //}()
  56.  
  57.     err := server.ListenAndServe()
  58.     if err != nil {
  59.         log.Log.Error(err)
  60.     }
  61. }
  62.  
  63. func closeConnections(db *database.DBManager) {
  64.     session.Destruct()
  65.     database.Disconnect(db)
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement