updates
This commit is contained in:
81
server/internal/handlers/user_handler.go
Normal file
81
server/internal/handlers/user_handler.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"go-server/internal/service"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type AdminController struct {
|
||||
service *service.UserService
|
||||
}
|
||||
|
||||
func NewAdminController(service *service.UserService) *AdminController {
|
||||
return &AdminController{service}
|
||||
}
|
||||
|
||||
func (uc *AdminController) GetUserByID(c *gin.Context) {
|
||||
id := uuid.MustParse(c.Param("id"))
|
||||
user, err := uc.service.GetByID(c, id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "User not found"})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, user)
|
||||
}
|
||||
|
||||
func (uc *AdminController) GetUsers(c *gin.Context) {
|
||||
users, err := uc.service.GetAll(c)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, users)
|
||||
}
|
||||
|
||||
func (uc *AdminController) CreateUser(c *gin.Context) {
|
||||
var input service.CreateUserInput
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"})
|
||||
return
|
||||
}
|
||||
|
||||
user, err := uc.service.Create(c, input)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusCreated, user)
|
||||
}
|
||||
|
||||
func (uc *AdminController) DeleteUser(c *gin.Context) {
|
||||
id := uuid.MustParse(c.Param("id"))
|
||||
err := uc.service.Delete(c, id)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"message": "User deleted successfully"})
|
||||
}
|
||||
|
||||
func (uc *AdminController) ChangePassword(c *gin.Context) {
|
||||
id := uuid.MustParse(c.Param("id"))
|
||||
var input service.ChangePasswordInput
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request"})
|
||||
return
|
||||
}
|
||||
err := uc.service.ChangePassword(c, id, input)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Password changed successfully"})
|
||||
}
|
||||
Reference in New Issue
Block a user