#Gin context vs normal

3 messages · Page 1 of 1 (latest)

wild wigeon
#

The gin version of the code is this:

package routes

import (
    "github.com/gin-gonic/gin"
    "github.com/wpcodevo/golang-gorm-postgres/controllers"
    "github.com/wpcodevo/golang-gorm-postgres/middleware"
)

type AuthRouteController struct {
    authController controllers.AuthController
}

func NewAuthRouteController(authController controllers.AuthController) AuthRouteController {
    return AuthRouteController{authController}
}

func (rc *AuthRouteController) AuthRoute(rg *gin.RouterGroup) {
    router := rg.Group("/auth")

    router.POST("/register", rc.authController.SignUpUser)
    router.POST("/login", rc.authController.SignInUser)
    router.GET("/logout", middleware.DeserializeUser(), rc.authController.LogoutUser)
    router.GET("/verifyemail/:verificationCode", rc.authController.VerifyEmail)
}


#
package main

import (
    "log"
    "net/http"

    "github.com/gin-contrib/cors"
    "github.com/gin-gonic/gin"
    "github.com/wpcodevo/golang-gorm-postgres/controllers"
    "github.com/wpcodevo/golang-gorm-postgres/initializers"
    "github.com/wpcodevo/golang-gorm-postgres/routes"
)

var (
    server              *gin.Engine
    AuthController      controllers.AuthController
    AuthRouteController routes.AuthRouteController

    UserController      controllers.UserController
    UserRouteController routes.UserRouteController
)

func init() {
    config, err := initializers.LoadConfig(".")
    if err != nil {
        log.Fatal("? Could not load environment variables", err)
    }

    initializers.ConnectDB(&config)

    AuthController = controllers.NewAuthController(initializers.DB)
    AuthRouteController = routes.NewAuthRouteController(AuthController)

    UserController = controllers.NewUserController(initializers.DB)
    UserRouteController = routes.NewRouteUserController(UserController)

    server = gin.Default()
}

func main() {
    config, err := initializers.LoadConfig(".")
    if err != nil {
        log.Fatal("? Could not load environment variables", err)
    }

    corsConfig := cors.DefaultConfig()
    corsConfig.AllowOrigins = []string{"http://localhost:8000", config.ClientOrigin}
    corsConfig.AllowCredentials = true

    server.Use(cors.New(corsConfig))

    router := server.Group("/api")
    router.GET("/healthchecker", func(ctx *gin.Context) {
        message := "Welcome to Golang with Gorm and Postgres"
        ctx.JSON(http.StatusOK, gin.H{"status": "success", "message": message})
    })

    AuthRouteController.AuthRoute(router)
    UserRouteController.UserRoute(router)
    log.Fatal(server.Run(":" + config.ServerPort))
}


#

I'm confused on how to use this in CHI