package routes import ( "GoMembership/internal/controllers" "GoMembership/internal/middlewares" "github.com/gin-gonic/gin" ) func RegisterRoutes(router *gin.Engine, userController *controllers.UserController, membershipcontroller *controllers.MembershipController, contactController *controllers.ContactController) { router.GET("/users/verify", userController.VerifyMailHandler) router.POST("/users/register", userController.RegisterUser) router.POST("/users/contact", contactController.RelayContactRequest) router.POST("/users/login", userController.LoginHandler) router.POST("/csp-report", middlewares.CSPReportHandling) // create subrouter for teh authenticated area /account // also pthprefix matches everything below /account // accountRouter := router.PathPrefix("/account").Subrouter() // accountRouter.Use(middlewares.AuthMiddleware) //create api key required router apiRouter := router.Group("/api") { router.POST("/v1/subscription", membershipcontroller.RegisterSubscription) } apiRouter.Use(middlewares.APIKeyMiddleware()) authRouter := router.Group("/users/backend") authRouter.Use(middlewares.AuthMiddleware()) { authRouter.GET("/current-user", userController.CurrentUserHandler) authRouter.POST("/logout", userController.LogoutHandler) } }