1 |
51542
|
katerina.i
|
package eu.dnetlib.data.search.web.api;
|
2 |
|
|
|
3 |
|
|
|
4 |
56601
|
katerina.i
|
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
5 |
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
6 |
51542
|
katerina.i
|
import org.springframework.http.HttpStatus;
|
7 |
|
|
import org.springframework.http.ResponseEntity;
|
8 |
|
|
import org.springframework.web.bind.annotation.ControllerAdvice;
|
9 |
|
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
10 |
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
11 |
|
|
import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
|
12 |
|
|
|
13 |
|
|
@EnableWebMvc
|
14 |
|
|
@ControllerAdvice(value = "eu.dnetlib.data.search.web.api", assignableTypes = SearchRequestController.class)
|
15 |
|
|
public class ExceptionController extends ResponseEntityExceptionHandler{
|
16 |
56601
|
katerina.i
|
|
17 |
|
|
@Autowired
|
18 |
|
|
PrometheusMeterRegistry registry;
|
19 |
|
|
|
20 |
51542
|
katerina.i
|
@ExceptionHandler(Exception.class)
|
21 |
|
|
public ResponseEntity<Error> invalidInput(Exception ex) {
|
22 |
|
|
Error response = new Error();
|
23 |
|
|
response.setStatus("error");
|
24 |
|
|
response.setCode("500");
|
25 |
|
|
response.setMessage("500 - Internal server error.");
|
26 |
|
|
response.setException(ex.getMessage());
|
27 |
|
|
|
28 |
56601
|
katerina.i
|
|
29 |
|
|
registry.counter("http.status.500", "500", "uri").increment();
|
30 |
51542
|
katerina.i
|
return new ResponseEntity<Error>(response, HttpStatus.CONFLICT);
|
31 |
|
|
}
|
32 |
|
|
}
|