From acd75c16579953d6ca0a521d47c0a42c9813801a Mon Sep 17 00:00:00 2001 From: vityaman Date: Tue, 30 Apr 2024 11:56:07 +0300 Subject: [PATCH] #91 Catching invalid timestamp at json --- .../api/http/error/DriverExceptionMapping.kt | 17 +++++++++++++++++ botalka/src/main/resources/application.yml | 2 +- docker-compose.yml | 4 ++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt index c6b4dee..495e5bb 100644 --- a/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt +++ b/botalka/src/main/kotlin/ru/vityaman/lms/botalka/app/spring/api/http/error/DriverExceptionMapping.kt @@ -1,6 +1,7 @@ package ru.vityaman.lms.botalka.app.spring.api.http.error import com.fasterxml.jackson.core.JsonParseException +import com.fasterxml.jackson.databind.JsonMappingException import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.ExceptionHandler @@ -23,4 +24,20 @@ class DriverExceptionMapping { ), ) } + + @ExceptionHandler(JsonMappingException::class) + fun handle(exception: JsonMappingException): ResponseEntity { + val code = HttpStatus.BAD_REQUEST + val offset = exception.location.offsetDescription() + val message = exception.cause!!.message + return ResponseEntity + .status(code) + .body( + GeneralErrorMessage( + code = code.value(), + status = code.reasonPhrase, + message = "Json syntax error at $offset: $message", + ), + ) + } } diff --git a/botalka/src/main/resources/application.yml b/botalka/src/main/resources/application.yml index 8ef88f6..15a9a65 100644 --- a/botalka/src/main/resources/application.yml +++ b/botalka/src/main/resources/application.yml @@ -24,7 +24,7 @@ logging: root: INFO r2dbc: INFO sql: INFO - web: INFO + web: DEBUG group: r2dbc: org.springframework.r2dbc,org.springframework.data.r2dbc management: diff --git a/docker-compose.yml b/docker-compose.yml index 0053fdd..b52d819 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,6 +44,8 @@ services: - GF_SECURITY_ADMIN_PASSWORD=0000 networks: - lms-network + profiles: + - infra prometheus: container_name: lms-prometheus image: prom/prometheus @@ -53,6 +55,8 @@ services: - ./infra/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml networks: - lms-network + profiles: + - infra restler: container_name: lms-restler image: restler