/
TimofeyNovv
/
To-do-List
Обзор
Документация
Войти
/
TimofeyNovv
/
To-do-List
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
api
src/main/java/com/example/ToDoList/exception/GlobalExceptionHandler.java
93 строки
5 KB
TimofeyNov
add /all/status endpoint for task
30 окт 2025, 13:20
30 окт 2025, 13:20
5a603e6
Код
Авторство
О чём код?
package com.example.ToDoList.exception; import com.example.ToDoList.dto.ErrorResponse; import org.springframework.security.core.AuthenticationException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.server.ResponseStatusException; import org.springframework.security.access.AccessDeniedException; @RestControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(InvalidCredentialsException.class) public ResponseEntity<ErrorResponse> handleInvalidCredentials(InvalidCredentialsException ex) { ErrorResponse error = new ErrorResponse("INVALID_CREDENTIALS", ex.getMessage()); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error); } @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<ErrorResponse> handleInvalidValidation(MethodArgumentNotValidException ex){ ErrorResponse error = new ErrorResponse("VALIDATION_ERROR", ex.getMessage()); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error); } @ExceptionHandler(InvalidPasswordException.class) public ResponseEntity<ErrorResponse> handleInvalidPassword(InvalidPasswordException ex){ ErrorResponse error = new ErrorResponse("INVALID_PASSWORD", ex.getMessage()); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(error); } @ExceptionHandler(ResponseStatusException.class) public ResponseEntity<String> handleResponseStatusException(ResponseStatusException ex) { return ResponseEntity.status(ex.getStatusCode()) .body(ex.getReason()); } @ExceptionHandler(UserNotFoundException.class) public ResponseEntity<ErrorResponse> handleUserNotFound(UserNotFoundException ex){ ErrorResponse error = new ErrorResponse("USER_NOT_FOUND", ex.getMessage()); return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error); } @ExceptionHandler(AdminDeletionException.class) public ResponseEntity<ErrorResponse> handleAdminDeletion(AdminDeletionException ex){ ErrorResponse error = new ErrorResponse("ADMIN_DELETION_EX", ex.getMessage()); return ResponseEntity.status(HttpStatus.CONFLICT).body(error); } @ExceptionHandler(AccessDeniedException.class) public ResponseEntity<ErrorResponse> handleAccessDenied(AdminDeletionException ex){ ErrorResponse error = new ErrorResponse("ACCESS_DENIED_EX", ex.getMessage()); return ResponseEntity.status(HttpStatus.FORBIDDEN).body(error); } @ExceptionHandler(AuthenticationException.class) public ResponseEntity<ErrorResponse> handleAuthentication(AuthenticationException ex){ ErrorResponse error = new ErrorResponse("UNAUTHORIZED", "Authentication required"); return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(error); } @ExceptionHandler(UserAlreadyExistsException.class) public ResponseEntity<ErrorResponse> handleUserAlreadyExists(UserAlreadyExistsException ex){ ErrorResponse error = new ErrorResponse("USER_ALREADY_EXISTS", ex.getMessage()); return ResponseEntity.status(HttpStatus.CONFLICT).body(error); } @ExceptionHandler(TaskAlreadyExistsException.class) public ResponseEntity<ErrorResponse> handleTaskAlreadyExists(TaskAlreadyExistsException ex){ ErrorResponse error = new ErrorResponse("TASK_ALREADY_EXISTS", ex.getMessage()); return ResponseEntity.status(HttpStatus.CONFLICT).body(error); } @ExceptionHandler(TaskNotFoundException.class) public ResponseEntity<ErrorResponse> handleTaskNotFound(TaskNotFoundException ex){ ErrorResponse error = new ErrorResponse("TASK_NOT_FOUND", ex.getMessage()); return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error); } @ExceptionHandler(NoAccessException.class) public ResponseEntity<ErrorResponse> handleNoAccess(NoAccessException ex){ ErrorResponse error = new ErrorResponse("ACCESS_DENIED", ex.getMessage()); return ResponseEntity.status(HttpStatus.FORBIDDEN).body(error); } @ExceptionHandler(TasksWithStatusNotFoundException.class) public ResponseEntity<ErrorResponse> handleTasksWithStatusNotFound(TasksWithStatusNotFoundException ex){ ErrorResponse error = new ErrorResponse("NOT_FOUND", ex.getMessage()); return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error); } }