backend: add: DeleteUser, fix: validation
This commit is contained in:
@@ -95,6 +95,36 @@ func (uc *UserController) UpdateHandler(c *gin.Context) {
|
||||
c.JSON(http.StatusAccepted, gin.H{"message": "User updated successfully", "user": updatedUser.Safe()})
|
||||
}
|
||||
|
||||
func (uc *UserController) DeleteUser(c *gin.Context) {
|
||||
|
||||
requestUser, err := uc.extractUserFromContext(c)
|
||||
if err != nil {
|
||||
utils.RespondWithError(c, err, "Error extracting user from context in UpdateHandler", http.StatusBadRequest, "general", "server.validation.no_auth_tokenw")
|
||||
return
|
||||
}
|
||||
|
||||
type deleteData = struct {
|
||||
ID uint `json:"id"`
|
||||
LastName string `json:"lastname"`
|
||||
}
|
||||
|
||||
var deletedUser deleteData
|
||||
if err := c.ShouldBindJSON(&deletedUser); err != nil {
|
||||
utils.HandleValidationError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if !utils.HasPrivilige(requestUser, constants.Priviliges.Update) && deletedUser.ID != requestUser.ID {
|
||||
utils.RespondWithError(c, errors.ErrNotAuthorized, "Not allowed to delete user", http.StatusForbidden, "user", "server.error.unauthorized")
|
||||
return
|
||||
}
|
||||
|
||||
if err := uc.Service.DeleteUser(deletedUser.LastName, deletedUser.ID); err != nil {
|
||||
utils.RespondWithError(c, err, "Error during user deletion", http.StatusInternalServerError, "user", "server.error.internal_server_error")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (uc *UserController) extractUserFromContext(c *gin.Context) (*models.User, error) {
|
||||
|
||||
tokenString, err := c.Cookie("jwt")
|
||||
|
||||
Reference in New Issue
Block a user