Skip to content

Instantly share code, notes, and snippets.

@krittawatcode
Last active November 14, 2020 06:10
Show Gist options
  • Save krittawatcode/673f90bf1d4f9b133eb6be850552c7a0 to your computer and use it in GitHub Desktop.
Save krittawatcode/673f90bf1d4f9b133eb6be850552c7a0 to your computer and use it in GitHub Desktop.
package controller
import (
"github/krittawatcode/go-jwt/src/dto"
"github/krittawatcode/go-jwt/src/service"
"github.com/gin-gonic/gin"
)
//login contorller interface
type LoginController interface {
Login(ctx *gin.Context) string
}
type loginController struct {
loginService service.LoginService
jWtService service.JWTService
}
func LoginHandler(loginService service.LoginService,
jWtService service.JWTService) LoginController {
return &loginController{
loginService: loginService,
jWtService: jWtService,
}
}
func (controller *loginController) Login(ctx *gin.Context) string {
var credential dto.LoginCredentials
err := ctx.ShouldBind(&credential)
if err != nil {
return "no data found"
}
isUserAuthenticated := controller.loginService.LoginUser(credential.Email, credential.Password)
if isUserAuthenticated {
return controller.jWtService.GenerateToken(credential.Email, true)
}
return ""
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment