Project

General

Profile

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
}