| | package controllers |
| |
|
| | import ( |
| | "net/http" |
| |
|
| | "dinacom-11.0-backend/models/dto" |
| | "dinacom-11.0-backend/services" |
| | "dinacom-11.0-backend/utils" |
| |
|
| | "github.com/gin-gonic/gin" |
| | "github.com/google/uuid" |
| | ) |
| |
|
| | type AuthController interface { |
| | RegisterUser(ctx *gin.Context) |
| | VerifyOTP(ctx *gin.Context) |
| | LoginUser(ctx *gin.Context) |
| | LoginAdmin(ctx *gin.Context) |
| | LoginWorker(ctx *gin.Context) |
| | GoogleAuth(ctx *gin.Context) |
| | GetProfile(ctx *gin.Context) |
| | GetAllUsers(ctx *gin.Context) |
| | GetAllWorkers(ctx *gin.Context) |
| | } |
| |
|
| | type authController struct { |
| | authService services.AuthService |
| | } |
| |
|
| | func NewAuthController(authService services.AuthService) AuthController { |
| | return &authController{authService: authService} |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) RegisterUser(ctx *gin.Context) { |
| | var req dto.RegisterRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | if err := c.authService.RegisterUser(req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "OTP sent to email", nil) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) VerifyOTP(ctx *gin.Context) { |
| | var req dto.VerifyOTPRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | token, err := c.authService.VerifyOTP(req) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Verification successful", dto.AuthResponse{Token: token}) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) LoginUser(ctx *gin.Context) { |
| | var req dto.LoginRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | token, err := c.authService.LoginUser(req) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Login successful", dto.AuthResponse{Token: token}) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) LoginAdmin(ctx *gin.Context) { |
| | var req dto.LoginRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | token, err := c.authService.LoginAdmin(req) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Login successful", dto.AuthResponse{Token: token}) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) LoginWorker(ctx *gin.Context) { |
| | var req dto.LoginRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | token, err := c.authService.LoginWorker(req) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Login successful", dto.AuthResponse{Token: token}) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) GetProfile(ctx *gin.Context) { |
| | userIDVal, exists := ctx.Get("user_id") |
| | if !exists { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, "Unauthorized") |
| | return |
| | } |
| |
|
| | userID := userIDVal.(uuid.UUID) |
| | profile, err := c.authService.GetProfile(userID) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusNotFound, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Profile retrieved", profile) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) GetAllUsers(ctx *gin.Context) { |
| | users, err := c.authService.GetAllUsers() |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusInternalServerError, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Users retrieved", users) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) GetAllWorkers(ctx *gin.Context) { |
| | workers, err := c.authService.GetAllWorkers() |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusInternalServerError, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Workers retrieved", workers) |
| | } |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | func (c *authController) GoogleAuth(ctx *gin.Context) { |
| | var req dto.GoogleAuthRequest |
| | if err := ctx.ShouldBindJSON(&req); err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusBadRequest, err.Error()) |
| | return |
| | } |
| |
|
| | response, err := c.authService.GoogleAuth(req) |
| | if err != nil { |
| | utils.SendErrorResponse(ctx, http.StatusUnauthorized, err.Error()) |
| | return |
| | } |
| |
|
| | utils.SendSuccessResponse(ctx, "Authentication successful", response) |
| | } |
| |
|