diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt new file mode 100644 index 0000000..5848b56 --- /dev/null +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/api/http/error/DriverExceptionMapping.kt @@ -0,0 +1,26 @@ +package ru.vityaman.lms.botalka.api.http.error + +import com.fasterxml.jackson.core.JsonParseException +import org.springframework.http.HttpStatus +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.ExceptionHandler +import org.springframework.web.bind.annotation.RestControllerAdvice +import ru.vityaman.lms.botalka.api.http.server.GeneralErrorMessage + +@RestControllerAdvice +class DriverExceptionMapping { + @ExceptionHandler(JsonParseException::class) + fun handle(exception: JsonParseException): ResponseEntity { + val code = HttpStatus.BAD_REQUEST + val offset = exception.location.offsetDescription() + return ResponseEntity + .status(code) + .body( + GeneralErrorMessage( + code = code.value(), + status = code.reasonPhrase, + message = "Json syntax error at $offset", + ), + ) + } +}