urna-backend / space /controller /authentication_controller.go
lifedebugger's picture
Deploy files from GitHub repository
6b99a55
package controller
import (
"github.com/abdanhafidz/ai-visual-multi-modal-backend/models"
services "github.com/abdanhafidz/ai-visual-multi-modal-backend/services"
"github.com/gin-gonic/gin"
)
type AuhenticationController interface {
Controller
Login(ctx *gin.Context)
Register(ctx *gin.Context)
}
type authenticationController struct {
*controller[services.AuthenticationService]
}
func NewAuthenticationController(authenticationService services.AuthenticationService) AuhenticationController {
return &authenticationController{
controller: &controller[services.AuthenticationService]{service: authenticationService},
}
}
func (c *authenticationController) Register(ctx *gin.Context) {
var loginRequest models.LoginRequest
c.RequestJSON(ctx, &loginRequest)
if loginRequest.IPAddress == "" {
loginRequest.IPAddress = ctx.ClientIP()
}
token := c.service.Register(ctx.Request.Context(), loginRequest.PassPhrase, loginRequest.TurnStile, loginRequest.IPAddress)
c.Response(ctx, token)
}
func (c *authenticationController) Login(ctx *gin.Context) {
var loginRequest models.LoginRequest
c.RequestJSON(ctx, &loginRequest)
token := c.service.Login(ctx.Request.Context(), loginRequest.PassPhrase)
c.Response(ctx, token)
}