42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package server
|
|
|
|
import (
|
|
"GoMembership/internal/controllers"
|
|
"GoMembership/internal/database"
|
|
"GoMembership/internal/middlewares"
|
|
"GoMembership/internal/repositories"
|
|
"GoMembership/internal/routes"
|
|
"GoMembership/internal/services"
|
|
"GoMembership/pkg/logger"
|
|
"net/http"
|
|
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
func Run() {
|
|
db := database.Connect()
|
|
defer db.Close()
|
|
|
|
userRepo := repositories.NewUserRepository(db)
|
|
userService := services.NewUserService(userRepo)
|
|
userController := controllers.NewUserController(userService)
|
|
|
|
router := mux.NewRouter()
|
|
// router.Handle("/csrf-token", middlewares.GenerateCSRFTokenHandler()).Methods("GET")
|
|
|
|
// Apply CSRF middleware
|
|
// router.Use(middlewares.CSRFMiddleware)
|
|
router.Use(middlewares.LoggerMiddleware)
|
|
|
|
routes.RegisterRoutes(router, userController)
|
|
// create subrouter for teh authenticated area /account
|
|
// also pthprefix matches everything below /account
|
|
// accountRouter := router.PathPrefix("/account").Subrouter()
|
|
// accountRouter.Use(middlewares.AuthMiddleware)
|
|
|
|
logger.Info.Println("Starting server on :8080")
|
|
if err := http.ListenAndServe(":8080", router); err != nil {
|
|
logger.Error.Fatalf("could not start server: %v", err)
|
|
}
|
|
}
|