Project

General

Profile

1
package eu.dnetlib.uoaadmintoolslibrary.handlers;
2

    
3
import eu.dnetlib.uoaadmintoolslibrary.responses.ExceptionResponse;
4
import org.apache.log4j.Logger;
5
import org.springframework.dao.DuplicateKeyException;
6
import org.springframework.data.crossstore.ChangeSetPersister;
7
import org.springframework.http.HttpStatus;
8
import org.springframework.http.ResponseEntity;
9
import org.springframework.web.bind.MissingServletRequestParameterException;
10
import org.springframework.web.bind.annotation.ControllerAdvice;
11
import org.springframework.web.bind.annotation.ExceptionHandler;
12

    
13
@ControllerAdvice
14
public class AdminToolsLibraryExceptionsHandler {
15
    private final Logger log = Logger.getLogger(this.getClass());
16

    
17
    @ExceptionHandler(MissingServletRequestParameterException.class)
18
    public ResponseEntity<ExceptionResponse> invalidInput(Exception ex) {
19
        ExceptionResponse response = new ExceptionResponse();
20
        response.setErrorCode("Validation Error");
21
        response.setErrorMessage("Invalid inputs.");
22
        response.setErrors(ex.getMessage());
23
        response.setStatus(HttpStatus.BAD_REQUEST);
24
        log.error("invalidInput exception");
25

    
26
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.BAD_REQUEST);
27
    }
28

    
29
    @ExceptionHandler(MismatchingContentException.class)
30
    public ResponseEntity<ExceptionResponse> mismatchingContentException(Exception ex) {
31
        ExceptionResponse response = new ExceptionResponse();
32
        response.setErrorCode("Conflicting content given");
33
        response.setErrorMessage(ex.getMessage());
34
        response.setErrors(ex.getMessage());
35
        response.setStatus(HttpStatus.BAD_REQUEST);
36
        log.error("mismatchingContent exception" + response.getErrorCode()+ " "+response.getErrorMessage());
37
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.BAD_REQUEST);
38
    }
39

    
40
    @ExceptionHandler(ContentNotFoundException.class)
41
    public ResponseEntity<ExceptionResponse> contentNotFoundException(Exception ex) {
42
        ExceptionResponse response = new ExceptionResponse();
43
        response.setErrorCode("No content found");
44
        response.setErrorMessage(ex.getMessage());
45
        response.setErrors(ex.getMessage());
46
        response.setStatus(HttpStatus.NOT_FOUND);
47
        log.error("contentNotFound exception" + response.getErrorCode()+ " "+response.getErrorMessage());
48
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.NOT_FOUND);
49
    }
50

    
51
    @ExceptionHandler(NullPointerException.class)
52
    public ResponseEntity<ExceptionResponse> nullPointerException(Exception ex) {
53
        ExceptionResponse response = new ExceptionResponse();
54
        response.setErrorCode("Null pointer Exception");
55
        response.setErrorMessage("Null pointer Exception");
56
        response.setErrors(ex.getMessage());
57
        response.setStatus(HttpStatus.BAD_REQUEST);
58
        log.error("nullPointerException exception");
59
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.BAD_REQUEST);
60
    }
61

    
62
    @ExceptionHandler(InvalidReCaptchaException.class)
63
    public ResponseEntity<ExceptionResponse> invalidReCaptchaException(Exception ex) {
64
        ExceptionResponse response = new ExceptionResponse();
65
        response.setErrorCode("Invalid ReCaptcha Exception");
66
        response.setErrorMessage("Invalid ReCaptcha Exception");
67
        response.setErrors(ex.getMessage());
68
        response.setStatus(HttpStatus.BAD_REQUEST);
69
        log.error("invalidReCaptchaException exception");
70
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.BAD_REQUEST);
71
    }
72

    
73

    
74
    @ExceptionHandler(ChangeSetPersister.NotFoundException.class)
75
    public ResponseEntity<ExceptionResponse> notFoundException(Exception ex) {
76
        ExceptionResponse response = new ExceptionResponse();
77
        response.setErrorCode("Not found Exception");
78
        response.setErrorMessage("Not found Exception");
79
        response.setErrors(ex.getMessage());
80
        response.setStatus(HttpStatus.NOT_FOUND);
81
        log.error("notFoundException exception : "+ ex.getMessage());
82
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.NOT_FOUND);
83
    }
84

    
85
    @ExceptionHandler(ForbiddenException.class)
86
    public ResponseEntity<ExceptionResponse> forbiddenException(Exception ex) {
87
        ExceptionResponse response = new ExceptionResponse();
88
        response.setErrorCode("Forbidden Exception");
89
        response.setErrorMessage("Forbidden Exception");
90
        response.setErrors(ex.getMessage());
91
        response.setStatus(HttpStatus.FORBIDDEN);
92
        log.error("forbiddenException exception : "+ ex.getMessage());
93
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.FORBIDDEN);
94
    }
95

    
96
    @ExceptionHandler(DuplicateKeyException.class)
97
    public ResponseEntity<ExceptionResponse> duplicateKeyException(Exception ex) {
98
        ExceptionResponse response = new ExceptionResponse();
99
        response.setErrorCode("DuplicateKey Exception");
100
        response.setErrorMessage("DuplicateKey Exception");
101
        response.setErrors(ex.getMessage());
102
        response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR);
103
        log.error("duplicateKeyException exception : "+ ex.getMessage());
104
        return new ResponseEntity<ExceptionResponse>(response, HttpStatus.INTERNAL_SERVER_ERROR);
105
    }
106
}
(1-1/5)